[Seaside] Ajax live updates
Ramon Leon
ramonleon at cox.net
Thu Jul 13 03:06:01 UTC 2006
> Or create a custom subclass of WASession and override the method
> #incomingRequest: with something like:
>
> incomingRequest: aRequest
> ^ aRequest isXMLHttpRequest
> ifTrue: [ self responseForRequest: aRequest ]
> ifFalse: [ super incomingRequest: aRequest ]
>
OK, I've had no luck with this approach, seems to be too many
assumptions about session having a current request, then updater not
being able to find its current session. Messing with the guts of
Seaside is just beyond me right now, to many things I don't yet grok
about the continuations and callbacks and how it all fits together.
>> Now I understand your problem, thanks for the example. The simplest and
>> safest workaround (without messing with the internals of Seaside) is
>> probably to do the AJAX request within a different session.
OK, since I've gotten nowhere on the first approach, is there an easy
way to do this? I'd like to be able to just do something like this...
renderContentOn: html
html div id: #price; with: 'searching...'
html script:
(html updater id: aName; asyncCallback: [:r |
(Delay forSeconds: 10) wait. "fake long running process"
r div id: #price; with: DateAndTime now])
and have asyncCallback somehow get a url that comes back on a new
session to prevent blocking, and immediately expire that session after
rendering so it doesn't hand around for 20 minutes. Anyone? Anyone?
More information about the Seaside
mailing list