代码之家  ›  专栏  ›  技术社区  ›  Eduardo León

定期强制_呼叫_立即远程射击

  •  0
  • Eduardo León  · 技术社区  · 16 年前

    periodically_call_remote
    

    3 回复  |  直到 14 年前
        1
  •  1
  •   EmFi    16 年前

    总是有加载解决方案。

    在您定义body标签的视图中:

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

    它将在加载时调用远程函数,并让periodicaly_call_remote所涉及的魔法以所需的间隔调用它。看到时钟是如何相对于周期性的call_remote间隔开始的,大约与onload开始的时间相同。你应该得到你想要的功能。

        2
  •  0
  •   Harish Shetty    16 年前

    这不是一个完美的解决方案,但远程函数在第一毫秒内被调用。

    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
    
        3
  •  0
  •   James P McGrath    16 年前

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