Javascript rails3中的Ajax轮询部分刷新,jQuery
Rails 3,JRuby 我最近参加了一个jQuery速成班,其中包括一些ajax部分渲染。这让我想到,我可以用它每隔x秒使用Javascript rails3中的Ajax轮询部分刷新,jQuery,javascript,jquery,ruby-on-rails,ajax,polling,Javascript,Jquery,Ruby On Rails,Ajax,Polling,Rails 3,JRuby 我最近参加了一个jQuery速成班,其中包括一些ajax部分渲染。这让我想到,我可以用它每隔x秒使用setInterval()轮询Rails服务器,以不断刷新页面的特定部分吗 我遇到的问题是如何使用$.get()方法获取部分的url并使用load()重新加载它。这就是混乱开始的地方——使用Rails 3,我有一个名为“_microspots”的部分,在一个div中用“id=”gf“(gf表示全局提要)呈现。这发生在我的Rails应用程序主页上,因此本例中的url将是“
setInterval()
轮询Rails服务器,以不断刷新页面的特定部分吗
我遇到的问题是如何使用$.get()
方法获取部分的url并使用load()
重新加载它。这就是混乱开始的地方——使用Rails 3,我有一个名为“_microspots”的部分,在一个div中用“id=”gf“(gf表示全局提要)呈现。这发生在我的Rails应用程序主页上,因此本例中的url将是“//localhost:8080/home”,而不是部分应用程序的url
$('#gf').html("<%= escape_javascript render :partial =>
'microposts/micropost', :locals => {:microposts => @mps} %>");
这是我最初的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>
不幸的是,现在从用户的角度来看似乎什么都没有发生,但是服务器每10秒显示一个ajax请求
那么,为什么我不能使用ajax轮询更新,并将更改应用到我的\u microsposts中呢?$.get
是本例中要使用的正确函数吗?当尝试重新加载分部代码时,load()
方法的url是什么
谢谢,希望这将有助于任何想使用ajax更新部分内容的人,特别是如果你是一名初学者,学习Michael Hartl的Ruby on Rails教程。以下是我如何设法解决我的问题 首先,我在micropost视图文件夹中创建了一个名为“polling.js.erb”的单独的.js.erb文件,该文件将刷新全局提要部分
$('#gf').html("<%= escape_javascript render :partial =>
'microposts/micropost', :locals => {:microposts => @mps} %>");
然后我修改了javascript代码,因为我想每5秒调用一次轮询方法,加载特定于我的webapp的当前用户的信息
$(document).ready(function() {
setInterval(function () {
$.ajax('microposts/<%= current_user.id %>/polling');
} , 5000);
});
$(document).ready(function() {
setInterval(function () {
$.ajax('microposts/<%= current_user.id %>/polling');
} , 5000);
});
resources :microposts do
member do
post :polling
end
end