<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Ciao,<div><div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="auto">But using interval() is wrong. You're creating one new interval on every call! And it doesn't have to be recursive.<div dir="auto"><br></div><div dir="auto">Maybe instead of #setInterval: it is #interval: in your image.</div></div></blockquote><div><br></div><span class="Apple-tab-span" style="white-space:pre"> You mean</span> timeout: </div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>But with: </div><div><br></div><div><blockquote type="cite"><div class="gmail_quote"></div></blockquote></div><div><span class="Apple-tab-span" style="white-space:pre"> </span><span class="Apple-style-span" style="font-size: 12px; ">scriptUpdaterOn: aJSScript</span><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "> <span class="Apple-tab-span" style="white-space:pre"> </span> aJSScript <</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "> ((aJSScript jQuery ajax</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "> script: [ :s |</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "> self shouldUpdate ifTrue: [ self scriptBannerUpdateOn: s ].</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "> <span class="Apple-tab-span" style="white-space:pre"> </span> ]) timeout: 1 minute)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><span class="Apple-tab-span" style="white-space:pre"> </span>i don't have any updating.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><span class="Apple-tab-span" style="white-space:pre"> </span>With: <span class="Apple-tab-span" style="white-space:pre"> </span>scriptUpdaterOn: aJSScript</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "> <span class="Apple-tab-span" style="white-space: pre; "> </span> <span class="Apple-tab-span" style="white-space:pre"> </span>aJSScript <</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "> <span class="Apple-tab-span" style="white-space:pre"> </span> ((aJSScript jQuery ajax</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "> <span class="Apple-tab-span" style="white-space:pre"> </span> script: [ :s |</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "> <span class="Apple-tab-span" style="white-space:pre"> </span>self shouldUpdate ifTrue: [ self scriptBannerUpdateOn: s ].</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><span class="Apple-tab-span" style="white-space:pre"> </span><span class="Apple-style-span" style="font-size: medium; "> <span class="Apple-tab-span" style="white-space:pre"> </span>self scriptUpdaterOn: s</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "> <span class="Apple-tab-span" style="white-space: pre; "> </span> ]) timeout: 1 minute)</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><span class="Apple-tab-span" style="white-space:pre"> </span>i have strange behavior.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><span class="Apple-tab-span" style="white-space:pre"> </span>The browser application go to 50% of CPU.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><span class="Apple-tab-span" style="white-space:pre"> </span>Thanks,</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><span class="Apple-tab-span" style="white-space:pre"> </span>Dario</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Helvetica; "><span class="Apple-tab-span" style="white-space: pre; "> </span></div><blockquote type="cite"><div class="gmail_quote"></div></blockquote><blockquote type="cite"><div class="gmail_quote"></div></blockquote><blockquote type="cite"><div dir="auto"><div dir="auto"><br></div><div dir="auto">Regards,</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">El mar., 9 de abr. de 2019 11:30, <a href="mailto:dtrussardi@tiscali.it">dtrussardi@tiscali.it</a> <<a href="mailto:dtrussardi@tiscali.it">dtrussardi@tiscali.it</a>> escribió:<br></div><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; ">Ciao,<br>
<br>
thanks.<br>
<br>
> El lun., 8 abr. 2019 a las 7:48, <a href="mailto:dtrussardi@tiscali.it" target="_blank" rel="noreferrer">dtrussardi@tiscali.it</a><br>
> (<<a href="mailto:dtrussardi@tiscali.it" target="_blank" rel="noreferrer">dtrussardi@tiscali.it</a>>) escribió:<br>
> <br>
>> In my case i haven't any user actions on the client.<br>
>> The client display some data with dynamic banner ( marquee tag )<br>
>> and i need to update it only when the data to display change from the server.<br>
>> When the data on the server relative to an banner change i need to force the clients banners update.<br>
>> it seems to me that your initial solution may be fine.<br>
>> <br>
>> What do you think?<br>
> <br>
> Too complex for such a simple task.<br>
> <br>
> Is the <marquee> tag still a thing? I though it dissapeared when<br>
> Geocities closed. :)<br>
> <br>
> See below my suggestion.<br>
> <br>
> <br>
>> Another solution could be to manage an client ajax request with a specific interval<br>
>> but update the relative banner div only if the related data received from the server changed.<br>
>> ( But how i can manage it?<br>
>> Can i not reply to an client ajax request<br>
>> or respond to doing nothing and continue to view the current status )<br>
> <br>
> You can have a recursive call to setInterval() that returns a script<br>
> (javascript) that updates the mentioned banner, and if no update is<br>
> necessary you do nothing. Doing it once per minute is nothing for the<br>
> server, since it's a simple AJAX call, which if nothing needs<br>
> updating, is fast to answer.<br>
> <br>
> These are the key parts:<br>
> <br>
> renderContentOn: html<br>
> self renderBannerOn: html.<br>
> html script: (html jQuery script: [ :script | self scriptUpdaterOn: script ])<br>
> <br>
> scriptUpdaterOn: aJSScript<br>
> aJSScript <<<br>
> ((aJSScript jQuery ajax<br>
> script: [ :s |<br>
> self shouldUpdate ifTrue: [ self scriptBannerUpdateOn: s ].<br>
> self scriptUpdaterOn: s ]) setTimeout: 1 minute)<br>
<br>
The setTimeout is not implemented in my system.<br>
<br>
With timeout: i have some problematic.<br>
<br>
I change the scriptUpdaterOn: aJSScript to:<br>
<br>
scriptUpdaterOn: aJSScript<br>
aJSScript <<br>
((aJSScript jQuery ajax<br>
script: [ :s |<br>
self shouldUpdate ifTrue: [ self scriptBannerUpdateOn: s ].<br>
]) interval: 1 minute)<br>
<br>
It works very well relatively to my current needs.<br>
<br>
Dario<br>
<br>
> <br>
> scriptBannerUpdateOn: s<br>
> s << ((s jQuery id: 'banner') replaceWith: [ :h | self renderBannerOn: h ])<br>
> <br>
> Attached to this mails goes a working example of this.<br>
> <br>
> In #scriptBannerUpdateOn: I would put all the logic, even by replacing<br>
> the whole component as a whole (sometimes the best compromise) or<br>
> indidividual elements within it).<br>
> <br>
> <br>
> <br>
> Regards,<br>
> <br>
> Esteban A. Maringolo<br>
> <EAMRecursiveTimeout.st>_______________________________________________<br>
> seaside mailing list<br>
> <a href="mailto:seaside@lists.squeakfoundation.org" target="_blank" rel="noreferrer">seaside@lists.squeakfoundation.org</a><br>
> <a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside" rel="noreferrer noreferrer" target="_blank">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br>
<br>
_______________________________________________<br>
seaside mailing list<br>
<a href="mailto:seaside@lists.squeakfoundation.org" target="_blank" rel="noreferrer">seaside@lists.squeakfoundation.org</a><br>
<a href="http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside" rel="noreferrer noreferrer" target="_blank">http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside</a><br>
</blockquote></div>
_______________________________________________<br>seaside mailing list<br><a href="mailto:seaside@lists.squeakfoundation.org">seaside@lists.squeakfoundation.org</a><br>http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside<br></blockquote></div><br></div></body></html>