[Seaside] Asynchronous update from web server
dtrussardi at tiscali.it
dtrussardi at tiscali.it
Wed Apr 10 15:36:48 UTC 2019
Ciao,
> Shouldn't your script have two < instead of one? Like this:
it's an error in the email.
The code is right,
but with timeout: the banner is not update.
with interval: it is update.
considerations ?
Thanks,
Dario
>
> 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
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
More information about the seaside
mailing list