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' ) ) %>");