Simone Gianni wrote:
Hi Toby,
I think you are right. What a continuation does (should do) is dump the
local variables and restore them before restarting the flow. This means
that if you write var a = 1; then create a continuation, when you return
to that continuation a should be 1 again, even if in other continuations
it has been changed to 2,3 or 4.

There is surely one known limitation to this : if you say var bean = new
MyBean(); bean.setX(1); then produce a continuation, then after the
continuation you call bean.setX(2), even if you go back to the previous
continuation you will find that bean.getX() == 2, because the LOCAL
VARIABLE is still your bean, but it's internal state is not manageable
by the continuation (more formally, your local variable is a pointer to
a bean, which is correctly restored when you go back to the
continuation, but the data it points to is not serialized/deserialized
by the continuation).

But this is not your case, in this case you are setting a simple
javascript variable, so it should work as you say, at least AFAIK :)

Please, file a bug about it.
I think it works OK. What is a local variable different from a bean?

Continuations are for managing flow, not keeping full state because it would consume too much resources. In 99% you do not need variables to have values bound to a specific continuation. Still you have an option to do so:

var pageLocal = cocoon.createPageLocal();
pageLocal.a = 1;

a PageLocal will have different values for different continuations. Please mind resource implications for that approach.

--
Leszek Gawron                                      [EMAIL PROTECTED]
IT Manager                                         MobileBox sp. z o.o.
+48 (61) 855 06 67                              http://www.mobilebox.pl
mobile: +48 (501) 720 812                       fax: +48 (61) 853 29 65

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to