2013-03-14 36 views
3

我在使用jQuery AJAX請求here創建長輪詢的指令。 下面是我的代碼:在turbolink中使用jQuery在Rails中進行長輪詢

: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衝突?

謝謝。

回答

3

爲什麼民意調查再次,因爲你是在完成回調再次調用函數POLL

(function poll(){ 
      $.ajax({ url: $("comment").data("url"), success: function(data){ 
       alert(data.comment); 
      }, dataType: "json", complete: poll, timeout: 8000 }); 
-----------------------------------------^ //here 
     })(); 

也不要混淆timeoutsetTimeout,這裏超時意味着如果AJAX調用不會在8秒內歸還將觸發錯誤回電

LIVE DEMO

+0

是的,這就是問題所在。感謝您指出了這一點。 – AdamNYC 2013-03-14 04:27:10