2009-10-19 18 views
0

我有一个力periodically_call_remote火立即

periodically_call_remote 

,我想火马上(如同代码是不存在的setTimeout的),并通过电话定期。有没有一种很好的方式来做到这一点使用PCR,或者我必须推出自己的?

如果有帮助,我正在使用jQuery/jRails。

回答

1

总是有onload解决方案。

在你看来,你必须定义body标签:

<body onload="<%= remote_function(==same options used with periodically_call_remote==) %>" > 

,它将调用上载远程功能,以及让参与periodically_call_remote魔术称之为在所需的时间间隔。大概在onload开始的同时,看到时钟如何在periodic_call_remote时间间隔开始。您应该获得所需的功能。

+0

嗯,那会的onclick调用它,但我知道你的意思:P 我最终使用remote_function解决方案。 – 2009-10-20 16:42:16

+0

oops。我有点复制了我的其他代码中的onclick语句,并忘记将其更改为onload。 – EmFi 2009-10-20 16:45:33

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 
0

好吧,我没有足够的声望评论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>