2014-10-23 3 views
0

나는이 방법이 있습니다페이지에서이 setTimeout 호출을 가장 먼저 호출하려면 어떻게해야합니까? 그런 다음 5 초 기다립니다.

$(document).ready(function(){ 

    var rootPath = getRootPartofPathName(); 
    (function poll() { 
     setTimeout(function() { 
      $.ajax({ 
       type: 'GET', 
       url: rootPath + '/data/notifications?method=getNotificationSizes', 
       success: function (data) { 
        handleNotifications(data); 
       }, 
       complete: poll 
      }); 
     }, 5000); 
    })(); 
}); 

을하지만 그것은 단지 페이지가로드 오초 후에 호출합니다. 첫 페이지로드시 폴링을 시작하려면 어떻게합니까?

+0

을 그리고 오른쪽 두 번 함수를 호출하지? –

+0

'setInterval'? – NicoSantangelo

+0

질문을 이해할 수 있을지 모르겠다. 1 천 5 분의 1로 변경하면 setTimeout이 바로 호출된다. 5 초 후에 무엇을 할 수 있을까? 콜백? –

답변

2

콜백에서 timeout을 만들고 자기 실행 기능에 대한 필요는 단순히 페이지로드 poll()를 호출 중 하나가 없습니다 :

function poll() { 
    $.ajax({ 
     type: 'GET', 
     url: rootPath + '/data/notifications?method=getNotificationSizes', 
     success: function (data) { 
      handleNotifications(data); 
      setTimeout(poll, 5000); 
     }, 
     complete: function() { 

     } 
    }); 
} 

poll(); 
+0

안녕하세요, 대괄호 안에 함수를 넣었으니 여기에서 그랬습니다. http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery. 정상적인 기능에 차이점이나 단점이 있습니까? –

+0

@ JohnathanAu - 아니요 - 자기 실행 기능 만 가지고있었습니다. 위 코드는 완벽합니다. – tymeJV