【发布时间】:2009-10-19 19:33:10
【问题描述】:
我有一个
periodically_call_remote
我想立即触发(就好像代码在没有 setTimeout 的情况下存在)以及定期调用。有没有使用 PCR 的好方法,还是我必须自己动手?
如果有帮助,我正在使用 jQuery/jRails。
【问题讨论】:
标签: ruby-on-rails ajax
我有一个
periodically_call_remote
我想立即触发(就好像代码在没有 setTimeout 的情况下存在)以及定期调用。有没有使用 PCR 的好方法,还是我必须自己动手?
如果有帮助,我正在使用 jQuery/jRails。
【问题讨论】:
标签: ruby-on-rails ajax
总是有 onload 解决方案。
在您定义body标签的视图中:
<body onload="<%= remote_function( ==same options used with periodically_call_remote==) %>" >
这将在加载时调用远程函数,并让与periodic_call_remote 相关的魔法以所需的时间间隔调用它。查看时钟如何在与 onload 开始的大致相同的时间相对于periodic_call_remote 间隔开始。你应该得到你想要的功能。
【讨论】:
这不是一个完美的解决方案,但远程函数在第一毫秒被调用。
def periodically_call_remote_starting_now(options = {} )
page.call("starting_now_count = 0")
periodically_call_remote ( options.merge(:frequency => 0.001, :condition => "++starting_now_count == 1"))
periodically_call_remote (options)
end
【讨论】:
好的,我没有足够的声誉来评论 KandadaBoggu 的帖子,所以写下我的评论作为答案。
我最喜欢 KandadaBoggu 的响应,但必须进行一些更改才能使辅助方法工作。我想出的代码如下。如果我的更改不合适,请随意投反对票(但更好的是,发表评论并让每个人都知道原因)。我对 KandadaBoggu 代码的修改如下:
def periodically_call_remote_starting_now(options = {})
result = ""
result << javascript_tag("starting_now_count = 0;")
result << periodically_call_remote(options.merge(:frequency => 0.001, :condition => "++starting_now_count == 1"))
result << periodically_call_remote(options)
end
否则我会收到以下错误:
undefined local variable or method `page' for #<ActionView::Base:0x7fc37a6e2658>
【讨论】: