2013-03-14 4 views
3

Я следую инструкциям по созданию длинных опросов с использованием запроса JQuery AJAX here. Ниже мой код:Длинный опрос с использованием jQuery в Rails с turbolink

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

Но вместо ожидания в течение 8 секунд, этот код опросов непрерывно. Я что-то делаю неправильно, или это как-то конфликтует с камнем turbolink, который я использую с Rails 3.2?

спасибо.

ответ

3

почему он опрашивает снова, потому что вы вызываете функцию опроса снова в полной обратного вызова

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

также Dont путать timeout с setTimeout, здесь тайм-аут означает, что если вызов Ajax не возвращается в течение 8 секунд вызовет вызов ошибки назад

LIVE DEMO

+0

Да, это проблема. Спасибо что подметил это. – AdamNYC