[Seaside] Questions about double (or more) request
Smalltalk at JGFoster.net
Wed Aug 5 18:53:09 UTC 2009
This is covered in chapter 7 of my tutorial (see http://seaside.gemstone.com/tutorial/)
On Aug 5, 2009, at 11:40 AM, Mariano Martinez Peck wrote:
> Hi! I am trying to understand how seaside handle double or more,
> request. I started with the simpler example: WACounter, which has:
> renderContentOn: html
> Transcript show: 'renderContentOn'; cr.
> html heading: count.
> html anchor
> callback: [ self increase ];
> with: '++'.
> html space.
> html anchor
> callback: [ self decrease ];
> with: '--'
> 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
> So, as I can see:
> 1) the callback (self increase in this case) is called for every
> 2) the renderContentOn isn't call until all of the self increase of
> that session finish.
> 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!
> seaside mailing list
> seaside at lists.squeakfoundation.org
More information about the seaside