Hi Jason, hi Joerg! cocoon.createPageLocal() was exactly what I've been looking for. Thanks a lot!
@Joerg: what you said about the difference between values of variables and references to objects is true for saving them in the PageLocal-Object. In Continuations Flowscript-Variables seem to be only referenced as well. This proves this little sample: function main() { var random = Math.round( Math.random() * 9 ) + 1; var hint = "Noch keine Eingaben."; var guesses = 0; while(true) { cocoon.sendPageAndWait("guess.jxt", {"random" : random, "hint" : hint, "guesses" : guesses}); var guess = parseInt(cocoon.request.get("guess")); guesses++; if(guess>random) { hint = "Nö, niedriger!"; } else if(guess<random) { hint = "Nö, höher!"; } else { break; } } cocoon.sendPage("success.jxt", {"guess" : guess, "random" : random, "guesses" : guesses}); } The Variable "guesses" works as a counter and is not set back if you're navigating backwards with Continuations. But using the PageLocal-object solves my problem. And I have another question: How can I serialize the contents of a CForms-Datamodel which you get from formObject.getModel() Into the PageLocal-Object? I mean, dynamically, without knowing the ids of the widgets, Something like: [pseudocode] ... dataModel = formObject.getModel(); for (var key in dataModel) { pageLocalObj.key = dataModel.key; } ... Or could you tell me the path to the sources, please, where I could look for implemented methods or something? I couldn't find it... Regards, Franzi -----Ursprüngliche Nachricht----- Von: Jason Johnston [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 12. April 2007 22:46 An: [EMAIL PROTECTED] Betreff: Re: Continuations: Snapshot or Pointers? On Thu, 12 Apr 2007 21:41:06 +0200, Joerg Heinicke <[EMAIL PROTECTED]> wrote: > On 12.04.2007 16:02, Franziska Witzani wrote: > >> According to the documentation I have (especially the book of Stephan >> Niedermeier), a continuation is a snapshot of the variables of the >> flowscript (by the time the continuation is created/saved) and a pointer > to >> the point of the flowscript which actually is being executed. >> >> I experienced, that this is not exactly the case. What seems to be saved >> within the continuation is not a snapshot of the variables, but only >> pointers to their values. >> >> (For example, if you have a counter, which is incremented after each >> "sendPageAndWait()" it will not be set back if you go back with >> continuations, but always hold the highest value.) > > They are indeed pointers, not snapshots. But this is only true for > objects. AFAIK there is no way to point to a primitive type, they are > always passed by value, not by reference. This means a simple counter > should indeed be resetted going back to an old continuation. But > somebody else can correct me on this. Torsten? > >> Is there a way to change that by configuring something, or will I have > to >> change the Cocoon-source code or find another way around it? > > No, there is no way to configure it. Actually I wonder how this should > be possible at all. How do you want to store and restore an object? I > can only imagine serializing and deserializing objects, but I'm not > aware of such an implementation. It would probably quite nice as you > don't need to care about any object state, but it's limiting to a > certain extend (to Serializable actually) and maybe not well performing. I've never tried using it, but if I understand the Flowscript documentation correctly, cocoon.createPageLocal() will create an object that restores its state at the time the continuation was created. Franziska this may fill your need. --Jason --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]