如何禁用计时器?

时间:2013-02-03 12:01:19

标签: javascript ajax timer

  

可能重复:
  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);

4 个答案:

答案 0 :(得分:1)

setInterval()方法将返回一个整数/数字。您需要存储它,然后将其传递给方法clearInterval()以停止它。

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

然后,当你想要阻止它时,我认为它会:

window.clearInterval(intervalId);

答案 1 :(得分:1)

setInterval()会返回一个句柄,稍后您可以将其传递给window.clearInterval()以停止计时器。

答案 2 :(得分:1)

当你开始间隔时,它返回一个定义它的整数:

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

然后,当您的AJAX函数返回true时,您可以清除该间隔:

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

答案 3 :(得分:0)

var x = window.setInterval(...);
// ...
window.clearInterval(x);