我有一个
periodically_call_remote
我想立即开火(好像代码在没有setTimeout的情况下存在)以及定期调用。有没有一种很好的方法来使用PCR,还是我必须自己动手?
如果它有帮助,我正在使用jQuery / jRails。
答案 0 :(得分:1)
始终存在onload解决方案。
在您定义body标签的视图中:
<body onload="<%= remote_function( ==same options used with periodically_call_remote==) %>" >
这将在加载时调用远程函数,以及让periodic_call_remote所涉及的魔法以所需的间隔调用它。看看时钟如何在onload开始时与periodic_call_remote间隔开始的时间大致相同。你应该得到你想要的功能。
答案 1 :(得分:0)
这不是一个完美的解决方案,但是在第一毫秒内调用了远程函数。
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
答案 2 :(得分:0)
好的,我没有足够的声誉来评论KandadaBoggu的帖子,所以写下我的评论作为答案。
我最喜欢KandadaBoggu的回复,但是必须做一些修改才能让帮助方法起作用。我想出的代码如下。如果我的改变是noobish(但更好,评论并让每个人都知道为什么),请随意投票给我。我对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>