Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript rails3中的Ajax轮询部分刷新,jQuery_Javascript_Jquery_Ruby On Rails_Ajax_Polling - Fatal编程技术网

Javascript rails3中的Ajax轮询部分刷新,jQuery

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将是“

Rails 3,JRuby

我最近参加了一个jQuery速成班,其中包括一些ajax部分渲染。这让我想到,我可以用它每隔x秒使用
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