强制periodic_call_remote立即开火

时间:2009-10-19 19:33:11

标签: ruby-on-rails ajax

我有一个

periodically_call_remote

我想立即开火(好像代码在没有setTimeout的情况下存在)以及定期调用。有没有一种很好的方法来使用PCR,还是我必须自己动手?

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

3 个答案:

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