好像periodically_call_remote
在Rails 3中被弃用,任何想法如何实现相同的功能?Rails 3相当于periodic_call_remote
回答
我正在寻找使用Rails 3做正确的方式,但现在我相信,没有等值的Rails periodically_call_remote 3. 要获得与jQuery做完全相同的功能,我用:
$(document).ready(
function(){
setInterval(function(){
$('#mydiv').load('/controller/action');
}, 3000);
});
使用setInterval
定期运行调用AJAX调用的函数。如果你是用jQuery来做的话,它可能是这样的:
var pollBackend = function() {
$.getJSON("/foo/bar/poll");
}
setInterval(pollBackend, 5000);
这将试图每5秒轮询给定的URL JSON数据。
如果你真的想使用它,那么你可以安装具有这种方法的传统插件:
http://github.com/rails/prototype_legacy_helper
的Rails现在有利于UJS。
查阅这些环节上UJS更多信息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/
希望这可以帮助!
这也可能有帮助: http://railscasts.com/episodes/229-polling-for-changes – johnmcaliley 2010-09-09 12:42:24
这是你需要进行定期Ajax调用什么,用自己的REST风格的路线替代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')) %>");
如果你想继续使用prototype.js,所以你可以做什么如下:
<%= content_for :js do %>
new Ajax.PeriodicalUpdater("mydiv",
"/controller/action",
{ frequency: 5,
method: 'get' })
<% end %>
更多Ajax.PeriodicalUpdater here。
试图实现这一点,但挣扎。如果我在application.js中插入这段代码,在头文件中包含javascript默认值,并且有一个id ='mydiv'的DOM元素,那么它应该自动绑定,更正?另外,我如何动态更新URL,例如,如果我有一个嵌套的资源,以便我需要加载'/ controller /:id/action',其中:id是动态设置的? – 2011-06-22 03:56:35
要做到这一点,只需将data-item-id添加到元素中,然后使用jQuery的.data()加载它,并且您可以对URL执行相同的操作。 – 2011-06-25 00:03:12