[Seaside] jQuery anchor and multiple div update

Karsten Kusche karsten at heeg.de
Wed Jun 5 12:07:21 UTC 2013


John,  

there's no use in serializing an anchor. You can serialize a form in order to transport the values of the form to the server, but there's no other use for that (http://api.jquery.com/serialize/)
As for the order of javascript, the script that's created here performs a single Ajax request to the server (by calling #ajax), responding with a script that replaces the contents of two html nodes.  
> html anchor
>    callback: [ self setIndex: aValue ];
>    onClick: (html jQuery ajax
>       serializeThis;
>       script: [ :s | (s jquery: anId) html: [ :h | self renderStuffOn: h ].
>          s << (s jQuery: anId2) html: [ :h | self renderSomeOtherStuffOn: h ] ]...


I think there's some confusion as to when the different blocks are executed. The script block [:s | …. ] is executed in response to the ajax request. It immediately executes the two html blocks [:h | … ] and the result is part of the script that the script-block produces.

When you debug that using Chrome or Firebug, check the network panel for the traffic that's generated. You should only see one get request and the response of that request is javascript code like jQuery("#id1").html("yadayada"); jQuery("#id2").html("yagayaga");

Now in the Original example there were some #load calls, that generate extra ajax requests. These request could lead to load-order conflicts. But as Ryan already pointed out, they only make things more complicated in this context.

Kind Regards
Karsten


--  
Karsten Kusche - Dipl. Inf. (FH) - karsten at heeg.de
Georg Heeg eK - Köthen
Handelsregister: Amtsgericht Dortmund A 12812  


Am Mittwoch, 5. Juni 2013 um 13:21 schrieb John McKeon:

> Hi Dario,
> I think the trouble is that when you have two or more ajax scripts to be run you are not guaranteed which will run first. If you use a callback and send serializeThis to the ajax object, it runs before any scripts:
>   
> html anchor
>    callback: [ self setIndex: aValue ];
>    onClick: (html jQuery ajax
>       serializeThis;
>       script: [ :s | (s jquery: anId) html: [ :h | self renderStuffOn: h ].
>          s << (s jQuery: anId2) html: [ :h | self renderSomeOtherStuffOn: h ] ]...
> Regards,  
> John
> On Wed, Jun 5, 2013 at 4:40 AM, <dtrussardi at tiscali.it (mailto:dtrussardi at tiscali.it)> wrote:
> > Ciao,  
> >  
> > i have  a anchor based on this code:  
> >  
> > html anchor
> > script: (html jQuery this button
> > text: true;
> > primaryIcon:  'ui-icon-circle-plus'
> > title: 'Successivo');
> >  
> > onClick: (html jQuery ajax  
> > ( html jQuery ajax  
> >           script: [ :s | s << (s jQuery:  #'base') load html:[:h| "A" self incrementaIndex: true.  
> > "B1" (self renderingBaseOn:  h)].  
> >  
> > s << (s jQuery: #'orarioRiferimento') load html:[:h|  "B2" ( self renderOrarioRiferimentoOn: h)]]);  
> > with: '>'.
> >  
> >  
> > My objective when a user click on this anchor is:  
> >  
> > A)   update a index  with the   self incrementaIndex: true.  
> >  
> > B1)  update the div #base with:    self renderingBaseOn: h  
> >  
> > B2) update the div #orarioRiferimento  with:  self renderOrarioRiferimentoOn: h  
> >  
> >  
> > Where the B1 - B2  rendering is based on the index state.  
> >  
> > Now i have a strange behavior because sometime the B2  div #orarioRiferimento  renderings is not aligned to the index.  
> >  
> > As if the onClick script action  is not execute in the definition sequence.  
> >  
> >  
> > Any suggestions ?  
> >  
> > What is the right definition to solve this problematic type ?  
> >  
> > Thanks,  
> >  
> > Dario  
> >  
> >  
> >  
> > _______________________________________________
> > seaside mailing list
> > seaside at lists.squeakfoundation.org (mailto:seaside at lists.squeakfoundation.org)
> > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> >  
>  
>  
>  
> --  
> jmck.seasidehosting.st (http://jmck.seasidehosting.st/)  
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org (mailto: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/20130605/3e323497/attachment.htm


More information about the seaside mailing list