2013-02-03 4 views
1

가능한 중복 :
Stop setInterval call in javascript타이머를 비활성화하는 방법은 무엇입니까?

내가 폴링 진행 상태에 대한 window.setInterval 방법을 사용합니다. 그러나 완료되면이 타이머를 비활성화해야합니다. 타이머를 비활성화하는 방법?

 window.setInterval(function(){$.ajax({ 
      type: 'GET', 
      url: 'imports', 
      success: function(response){ 
      console.log(response); 
      if(response['status'] != 'ok'){ 
       return; 
      } 

      $('.bar').css('width', response['progress'] + '%'); 

      if(response['step'] == 'completed') location.reload(); 
     }}, 'json');}, 1000); 
+2

아마 중복 - HTTP : //stackoverflow.com/q/109086/1947535 –

+2

[MDN] (https://developer.mozilla.org/en-US/docs/DOM/window.setInterval)은 확실하지 않은 JS 참조입니다. 특정 기능이 어떻게 작동하는지. – nnnnnn

답변

1

그것의 정수를 정의 반환

var timer = window.setInterval(...); 

당신의 AJAX 기능이 true를 반환 할 때 그 간격을 취소 할 수 있습니다

... 
success: function(response) { 
    console.log(response); 
    if (response['status'] != 'ok') { 
    clearInterval(timer); 
    return; 
    } 
} 
... 
1

setInterval() 메서드는 정수/숫자를 반환합니다. 이 값을 저장 한 다음 clearInterval() 메서드에 전달하여 중지해야합니다. 당신이 그것을 중지 할 때

var intervalId = window.setInterval(.....); 

은 나중에, 나는 그것이 갈 것이라고 생각 :

window.clearInterval(intervalId); 
1

setInterval()가 나중에 타이머를 중지 window.clearInterval()에 전달할 수있는 핸들을 반환합니다. 당신이 간격을 시작하면

0
var x = window.setInterval(...); 
// ... 
window.clearInterval(x); 
관련 문제