[Seaside] Questions about double (or more) request

Mariano Martinez Peck marianopeck at gmail.com
Thu Aug 6 13:14:36 UTC 2009


On Thu, Aug 6, 2009 at 4:16 AM, Philippe Marschall <
philippe.marschall at gmail.com> wrote:

> 2009/8/5 Mariano Martinez Peck <marianopeck at gmail.com>:
> > 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.
>
> I order of you observations:
> 1) You (your browser) makes three callback requests and discards the
> redirect to render for the first two


Ok, but which is the "condition" to be discarded? if the callback request is
finished but there are others callbacks request then it is discarded?


>
> 2) There is a lock that allows only one request per session at a time,
> otherwise your components would have to be thread safe
> 3) state backtracking, before every request the state of the counter
> is reverted to 0


that's because there was the method states ?


>
>
> > b) which of all of the self increase is the one that is finally rendered?
> > the first one?
>
> That should be the last one. The browser should discard processing the
> previous requests. Disable backtracking to be sure.


what do you mean with Disable backtracking ? remove the method states from
the component?

Thanks!

mariano



>
>
> Cheers
> Philippe
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20090806/88f18e7e/attachment.htm


More information about the seaside mailing list