Rails 3等效于periodic_call_remote

似乎在Rails 3中不推荐使用periodically_call_remote ,任何想法如何实现相同的function?

我正在寻找使用Rails 3的正确方法,但现在我确信在Rails 3中没有与periodic_call_remote相同的function。为了获得与jQuery完全相同的function,我使用了:

 $(document).ready( function(){ setInterval(function(){ $('#mydiv').load('/controller/action'); }, 3000); }); 

如果您真的想使用它,那么您可以安装具有此方法的旧插件:

http://github.com/rails/prototype_legacy_helper

Rails现在支持UJS。

有关Uails在Rails 3中的更多信息,请查看这些链接:
http://railscasts.com/episodes/205-unobtrusive-javascript
http://www.simonecarletti.com/blog/2010/06/unobtrusive-javascript-in-rails-3/

关于原型和link_to_remote标记我做了一个简短的写作:
http://www.cowboycoded.com/2010/07/20/replacing-link_to_remote-with-ujs-in-rails-3-prototype/

希望这可以帮助!

使用setInterval定期运行调用AJAX调用的函数。 如果你是用jQuery做的,它可能是这样的:

 var pollBackend = function() { $.getJSON("/foo/bar/poll"); } setInterval(pollBackend, 5000); 

这将尝试每5秒轮询给定的JSON数据URL。

如果您想继续使用prototype.js,那么您可以执行以下操作:

 <%= content_for :js do %> new Ajax.PeriodicalUpdater("mydiv", "/controller/action", { frequency: 5, method: 'get' }) <% end %> 

有关Ajax.PeriodicalUpdater的更多信息,请点击此处 。

这是定期ajax调用所需要的,用您自己的RESTful路由替换some_path:

 <%= javascript_tag do -%> $(document).ready( function(){ setInterval(function(){ $.ajax({ url: "<%= some_path %>", type: "GET", dataType: "script" }); }, 60000 ); }); <% end -%> 

index.js.erb文件如下所示:

 $('#mydiv').html("<%= escape_javascript( render( :partial => 'my_partial' ) ) %>");