在带有turbolink的Rails中使用jQuery进行长轮询

在带有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秒

我按照指示使用jQueryAjax请求创建长轮询。 下面是我的代码:

: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秒内没有返回,它将触发错误回调