Rails 3中,JRuby的Ajax的局部刷新通過查詢Rails 3中,jQuery的
我最近參加了在jQuery的快速速成班,其中包括一點ajax的部分呈現的。這讓我想到了,我是否可以使用這個來輪詢使用setInterval()
的Rails服務器,每隔x秒不斷刷新我的頁面的特定部分?
我遇到的問題是我如何使用$.get()
方法來抓取部分的url並使用load()
重新加載它。這是混亂開始的地方 - 使用Rails 3,我有一個名爲「_microposts」的部分,在一個div中用'id =「gf」'(gf表示全局提要)呈現。這發生在我的Rails應用主頁上,所以這種情況下的url將是「// localhost:8080/home」,而不是部分的url。
這是我最初的JavaScript/jQuery的
<script>
$(document).ready(function() {
setInterval(function (e) {
var url = $.get("<%= escape_javascript render :partial =>
'microposts/micropost', :locals => {:microposts => @microposts }%>");
$('#gf').html('loading...').load(url);
},10000);
});
</script>
這看起來不對,到目前爲止,只是清空了我的_microposts 10秒後的部分(所以setInterval的工作,並且它肯定更新正確的區域,只用一個空格)
編輯: 關於我的問題的思考,我意識到,這是類似於更新部分從事件,如單擊按鈕或東西。唯一真正的區別是應該觸發這個setInterval()
函數的「事件」。所以,我的修訂jQuery代碼如下:
<script>
$(document).ready(function() {
setInterval(function (e) {
$('#gf').html("<%= escape_javascript render :partial =>
'microposts/micropost', :locals => {:microposts => @microposts } %>")},
10000);
});
</script>
不幸的是,現在,似乎沒有任何可以從用戶的角度來看發生,但服務器出每10秒一個Ajax請求。
那麼爲什麼我不能使用ajax輪詢更新,並將更改應用到我的_microposts部分? $.get
是否在這種情況下使用正確的功能?嘗試重新加載部分時,load()
方法的網址是什麼?
感謝,