[Seaside] Questions about double (or more) request
Mariano Martinez Peck
marianopeck at gmail.com
Wed Aug 5 18:40:50 UTC 2009
Hi! I am trying to understand how seaside handle double or more, request. I
started with the simpler example: WACounter, which has:
Transcript show: 'renderContentOn'; cr.
html heading: count.
callback: [ self increase ];
callback: [ self decrease ];
Transcript show: 'increase'; cr.
count := count + 1.
(Delay forSeconds: 3) wait.
Now, suppose the counter is in 0. I click one time on '++' and wait and I
see in the transcipt:
Ok, perfect. New session, 0 again. Now I click on '++' but before it finish,
I click 3 times more (very quickly). I can see this in the transcipt:
So, as I can see:
1) the callback (self increase in this case) is called for every click.
2) the renderContentOn isn't call until all of the self increase of that
3) when renderContentOn is called, the webpage shows the number 1 (which is
correct instead of 4).
Now the questions are:
a) how does seaside can do that? every request has its own variables? I
think this has to be with continuations but I want to be sure.
b) which of all of the self increase is the one that is finally rendered?
the first one?
c) how can I handle the famous double commit? suppose now self increase does
something in a relational database (like persisting an order or something
like that) and I don't want it to get persisted twice or I don't want an
error because of duplicated PK.
Thanks for the help. I just want to understand how this is handle!
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the seaside