[Seaside] Asynchronous update from web server
Paul DeBruicker
pdebruic at gmail.com
Wed Apr 10 14:50:16 UTC 2019
Shouldn't your script have two < instead of one? Like this:
scriptUpdaterOn: aJSScript
aJSScript <<
((aJSScript jQuery ajax
script: [ :s |
self shouldUpdate ifTrue: [ self
scriptBannerUpdateOn: s ].
]) timeout: 1 minute)
dtrussardi at tiscali.it wrote
> Ciao,
>
>> But using interval() is wrong. You're creating one new interval on every
>> call! And it doesn't have to be recursive.
>>
>> Maybe instead of #setInterval: it is #interval: in your image.
>
> You mean timeout:
>
> But with:
>
>
> scriptUpdaterOn: aJSScript
> aJSScript <
> ((aJSScript jQuery ajax
> script: [ :s |
> self shouldUpdate ifTrue: [ self
> scriptBannerUpdateOn: s ].
> ]) timeout: 1 minute)
>
> i don't have any updating.
>
> With: scriptUpdaterOn: aJSScript
> aJSScript <
> ((aJSScript jQuery ajax
> script: [ :s |
> self shouldUpdate ifTrue: [ self
> scriptBannerUpdateOn: s ].
> self scriptUpdaterOn: s
> ]) timeout: 1 minute)
>
> i have strange behavior.
>
> The browser application go to 50% of CPU.
>
> Thanks,
>
> Dario
>
>>
>> Regards,
>>
>> El mar., 9 de abr. de 2019 11:30,
> dtrussardi@
> <
> dtrussardi@
> > escribió:
>> Ciao,
>>
>> thanks.
>>
>> > El lun., 8 abr. 2019 a las 7:48,
> dtrussardi@
>> > (<
> dtrussardi@
> >) escribió:
>> >
>> >> In my case i haven't any user actions on the client.
>> >> The client display some data with dynamic banner ( marquee tag
>> )
>> >> and i need to update it only when the data to display change
>> from the server.
>> >> When the data on the server relative to an banner change i need
>> to force the clients banners update.
>> >> it seems to me that your initial solution may be fine.
>> >>
>> >> What do you think?
>> >
>> > Too complex for such a simple task.
>> >
>> > Is the
> <marquee>
> tag still a thing? I though it dissapeared when
>> > Geocities closed. :)
>> >
>> > See below my suggestion.
>> >
>> >
>> >> Another solution could be to manage an client ajax request with
>> a specific interval
>> >> but update the relative banner div only if the related data
>> received from the server changed.
>> >> ( But how i can manage it?
>> >> Can i not reply to an client ajax request
>> >> or respond to doing nothing and continue to
>> view the current status )
>> >
>> > You can have a recursive call to setInterval() that returns a script
>> > (javascript) that updates the mentioned banner, and if no update is
>> > necessary you do nothing. Doing it once per minute is nothing for the
>> > server, since it's a simple AJAX call, which if nothing needs
>> > updating, is fast to answer.
>> >
>> > These are the key parts:
>> >
>> > renderContentOn: html
>> > self renderBannerOn: html.
>> > html script: (html jQuery script: [ :script | self scriptUpdaterOn:
>> script ])
>> >
>> > scriptUpdaterOn: aJSScript
>> > aJSScript <<
>> > ((aJSScript jQuery ajax
>> > script: [ :s |
>> > self shouldUpdate ifTrue: [ self scriptBannerUpdateOn: s ].
>> > self scriptUpdaterOn: s ]) setTimeout: 1 minute)
>>
>> The setTimeout is not implemented in my system.
>>
>> With timeout: i have some problematic.
>>
>> I change the scriptUpdaterOn: aJSScript to:
>>
>> scriptUpdaterOn: aJSScript
>> aJSScript <
>> ((aJSScript jQuery ajax
>> script: [ :s |
>> self shouldUpdate ifTrue: [ self
>> scriptBannerUpdateOn: s ].
>> ]) interval: 1 minute)
>>
>> It works very well relatively to my current needs.
>>
>> Dario
>>
>> >
>> > scriptBannerUpdateOn: s
>> > s << ((s jQuery id: 'banner') replaceWith: [ :h | self renderBannerOn:
>> h ])
>> >
>> > Attached to this mails goes a working example of this.
>> >
>> > In #scriptBannerUpdateOn: I would put all the logic, even by replacing
>> > the whole component as a whole (sometimes the best compromise) or
>> > indidividual elements within it).
>> >
>> >
>> >
>> > Regards,
>> >
>> > Esteban A. Maringolo
>> >
> <EAMRecursiveTimeout.st>
> _______________________________________________
>> > seaside mailing list
>> >
> seaside at .squeakfoundation
>> > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>> _______________________________________________
>> seaside mailing list
>>
> seaside at .squeakfoundation
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>> _______________________________________________
>> seaside mailing list
>>
> seaside at .squeakfoundation
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
>
> _______________________________________________
> seaside mailing list
> seaside at .squeakfoundation
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
--
Sent from: http://forum.world.st/Seaside-General-f86180.html
More information about the seaside
mailing list