<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>