[Seaside] Questions about double (or more) request

James Foster Smalltalk at JGFoster.net
Wed Aug 5 18:53:09 UTC 2009


Hi Mariano,

This is covered in chapter 7 of my tutorial (see http://seaside.gemstone.com/tutorial/) 
.

James

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: '--'
>
>
> increase
>     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:
>
> increase
> renderContentOn
>
> 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:
>
> increase
> increase
> increase
> increase
> renderContentOn
>
> 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 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!
>
> best,
>
> Mariano
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



More information about the seaside mailing list