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()
方法的网址是什么?
感谢,