在带有turbolink的Rails中使用jQuery进行长轮询
我按照指示使用jQueryAjax请求创建长轮询。 下面是我的代码:在带有turbolink的Rails中使用jQuery进行长轮询,jquery,ruby-on-rails,polling,turbolinks,Jquery,Ruby On Rails,Polling,Turbolinks,我按照指示使用jQueryAjax请求创建长轮询。 下面是我的代码: :javascript (function poll(){ $.ajax({ url: $("comment").data("url"), success: function(data){ alert(data.comment); }, dataType: "json", complete: poll, timeout: 8000 }); })(); 但这段代码不是超时8秒
:javascript
(function poll(){
$.ajax({ url: $("comment").data("url"), success: function(data){
alert(data.comment);
}, dataType: "json", complete: poll, timeout: 8000 });
})();
但这段代码不是超时8秒,而是持续轮询。我是否做错了什么,或者这与我在Rails 3.2中使用的turbolink
gem有冲突
谢谢。为什么它会再次轮询,因为您在完整回调中再次调用了poll函数
(function poll(){
$.ajax({ url: $("comment").data("url"), success: function(data){
alert(data.comment);
}, dataType: "json", complete: poll, timeout: 8000 });
-----------------------------------------^ //here
})();
另外,不要将timeout
与setTimeout
混淆,这里的timeout意味着如果ajax调用在8秒内没有返回,它将触发错误回调