好像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