Hi all,
I am having a problem where when I call periodically_call_remote the
CPU usage goes really high and I have to kill the browser to return
the system to normal. I have the following remote call:
<%= periodically_call_remote :url => {:action => '_live_now' },
:update => 'live_now_list',
:frequency => 10 %>
This works fine, at the start. After about 20/30 seconds the CPU
starts rising, to 20%, 50%, 70% and higher.
At first I have the above remote call in a partial (_live_now.rhtml):
<div id="live_now_list">
... stuff...
</div>
<%= periodically_call_remote :url => {:action => '_live_now' },
:update => 'live_now_list',
:frequency => 10 %>
/But/ I did notice that when I moved the periodically_call_remote call
to the index.rhtml which contains the partial _live_now.rhtml, the
problem does not happen. When I moved it to index.rhtml the CPU stays
low and the call works fine every 10 seconds.
It's great that it works but I would like to understand as to why
moving the remote call to index.rhtml fixes the problem?
Any insights would be greatly appreciated.
Cheers,
Diego
on 2007-03-17 07:40
on 2007-03-17 16:33
If you are using WEBrick in development mode it is probably checking the partial for updates and reprocessing it, while having it in the rhtml it is only processed once when the page is loaded. Michael
on 2007-03-18 05:44
Hi Michael, Thanks for the reply and explaining why this is happening. Even though I'd gotten rid of it, it's good to know why it was happening. Is there a way that this can be done while running webrick in development mode and not have this happen? Or, if I'm using webrick in development mode, it's just a matter of putting th remote call outside the partial and just avoiding this problem? Thanks. Diego
on 2007-03-18 23:44
You can completely avoid the problem by not putting the #periodically_call_remote method in a partial that gets reloaded a lot. As you discovered, each reload creates another instance of the javascript function. Put it in the main page outside the partial. cr
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.