[Seaside] Seaside, AJAX, and Iliad

Tony Fleig tony.fleig at gmail.com
Wed Dec 1 21:37:34 UTC 2010


Ok, I tried JQAjaxifierLibrary on a few of my test apps and here's what i
saw:

1. It definitely improves the user experience by doing what appears to be
in-place updating -- no flicker as the page reloads.

2. As advertised, it required no changes to my code and my existing AJAX
callbacks continued to work without modification.

3. I compared the Iliad multi-counter example with the Seaside multi-counter
example after adding JQAjaxifierLibrary to it.  The ajaxified Seaside
multicounter updates were noticably smoother than in the un-ajaxified
version.

With a local server, the Iliad multicounter accomplishes the update in about
one-half the time required by the Seaside version (about 10ms vs 20ms on my
hardware). The Iliad response content length was 322 bytes while the Seaside
response was 2603 bytes. (The toolbar was 893 of those bytes so the size for
comparison should be 1710 bytes or about 5X the Iliad response.) The Iliad
response contained an update for the changed counter only (and some
overhead) while the Seaside response contained the entire page.

I think the major difference here is that the Iliad implementation, while
requiring the programmer to manually mark widgets dirty, only updates the
changed widgets, while ajaxified Seaside continues to render the entire page
(albeit in a background request.)

In practice, I could observe no difference between the two -- I can't tell
the difference between 10 and 20 ms -- so for relatively small updates this
difference is probably not interesting. I would think for a page composed of
many complex components though, the difference could conceivably be
significant both in server processing load and transfer time when only one
component of many  is updated.

Regards,
TF


On Wed, Dec 1, 2010 at 11:45 AM, Tony Fleig <tony.fleig at gmail.com> wrote:

> Wow I'm glad I asked. I'll give JQAjaxifierLibrary a try.
>
> Thanks a lot.
> TF
>
>
> On Wed, Dec 1, 2010 at 10:41 AM, Lukas Renggli <renggli at gmail.com> wrote:
>
>> > Seaside's wonderful back-button management with continuations breaks
>> when
>> > AJAX is used. Iliad has a "different" back-button approach (which is not
>> > clearly defined anywhere that I could find).
>> > Is there any chance that Seaside could acquire markDirty functionality
>> and
>> > "automatic" AJAX callbacks like Iliad? I really like Seaside's
>> completeness
>> > and well-documented features, but I find myself drawn to Iliad instead
>> > because for Web-2.0-style apps the out-of-the-box (default) user
>> experience
>> > is so much better.
>> > Am I off-base here? Have I missed something important in my analysis?
>>
>> Well, Seaside 3.0 has the JQAjaxifierLibrary built in, see
>>
>>   http://www.lukas-renggli.ch/blog/ajaxification
>>   http://www.lukas-renggli.ch/blog/ajaxification-faq
>>
>> I have been using successfully using this approach in various
>> industrial applications since 2007 with PrototypeJS and later with
>> JQuery. Albeit it has not gained much popularity in the wider Seaside
>> community, I personally find it very elegant for the following
>> reasons:
>>
>> 1. You develop a normal application, you get an AJAX application for free.
>>
>> 2. You do not need to mark components as dirty.
>>
>> 3. You keep the full flexibility of how you structure your HTML.
>>
>> 4. You keep the full flexibility of doing custom AJAX actions if
>> necessary (e.g. to optimize certain updates).
>>
>> Lukas
>>
>> --
>> Lukas Renggli
>> www.lukas-renggli.ch
>> _______________________________________________
>> 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/20101201/7df880c2/attachment-0001.htm


More information about the seaside mailing list