[AJAX] #script: & #html: vs #onSuccess: & #load & #html:

Mariano Martinez Peck <[email protected]>
Newsgroups gmane.comp.lang.smalltalk.squeak.seaside
Message-ID <CAA+-=mXOXiXVURBmy0J776rPMWizmwOX-C61Qnn1MoxFgTFUSg@mail.gmail.com>
Hi guys,

Today I have a discussion with Esteban Maringolo and it looks we are both
doing something different for a classical AJAX example. Consider the
typical example of a click on a button that should trigger the re-render of
a given DIV.

I was using #script together with #html:  while Esteban was using
#onSuccess:/#onError: with #load and #html:

I created a class for testing the differences. Very simple:

renderContentOn: html
self renderMyDivOn: html.
html form: [
html button
bePush;
onClick: *(html jQuery ajax*
*   script: [ :s |   **s << ((s jQuery id: 'myDivId' ) html: [:r |  **self
renderMyDivOn: r. **]) **]*
* );*
value: 'Test with #script: '.
html button
bePush;
onClick: *(html jQuery ajax*
* callback: [  ];*
* onSuccess: (  (html jQuery id: 'myDivId') load html: [ :r | self
renderMyDivOn: r.  ] ) *
*);*
value: 'Test with #onSuccess:'.
]


And

renderMyDivOn: html

html div
id: 'myDivId';
with: [ html text: DateAndTime now greaseString. ]


Both solutions works. But of course, they are different. The generated HTML
is different too of course:

<form accept-charset="utf-8" method="post"
action="/reps?_s=pbHnnKA9Ys-E9FtR&amp;_k=Wktdp8ek0iMZdSUY">
*<button
onclick="$.ajax({&quot;dataType&quot;:&quot;script&quot;,&quot;url&quot;:&quot;/reps&quot;,&quot;data&quot;:[&quot;_s=pbHnnKA9Ys-E9FtR&quot;,&quot;_k=Wktdp8ek0iMZdSUY&quot;,&quot;156&quot;].join(&quot;&amp;&quot;)})"
type="button" class="button">Test with #script:</button>*

*<button
onclick="$.ajax({&quot;url&quot;:&quot;/reps&quot;,&quot;data&quot;:[&quot;_s=pbHnnKA9Ys-E9FtR&quot;,&quot;_k=Wktdp8ek0iMZdSUY&quot;,&quot;157&quot;].join(&quot;&amp;&quot;),&quot;success&quot;:function(){$(&quot;#myDivId&quot;).load(&quot;/reps&quot;,[&quot;_s=pbHnnKA9Ys-E9FtR&quot;,&quot;_k=Wktdp8ek0iMZdSUY&quot;,&quot;158&quot;].join(&quot;&amp;&quot;))}})"
type="button" class="button">Test with #onSuccess:</button>*
</form>


I am not an AJAX expert, so I wonder what are the differences, which is the
recommended approach, and why.

Thank you very much in advance.


-- 
Mariano
http://marianopeck.wordpress.com

_______________________________________________
seaside mailing list
[email protected]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.