3

重複の可能性:
JavaScriptでsetInterval呼び出しを停止します

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

4 に答える 4

3

間隔を開始すると、それを定義する整数が返されます。

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

次に、AJAX関数がtrueを返したときに、その間隔をクリアできます。

...
success: function(response) {
  console.log(response);
  if (response['status'] != 'ok') {
    clearInterval(timer);
    return;
  }
}
...
于 2013-02-03T12:05:35.857 に答える
2

メソッドはsetInterval()整数/数値を返します。これを保存してから、メソッドclearInterval()に渡して停止する必要があります。

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

その後、それを止めたいとき、私はそれが行くと思います:

window.clearInterval(intervalId);
于 2013-02-03T12:04:59.023 に答える
1

setInterval()window.clearInterval()後でタイマーを停止するために渡すことができるハンドルを返します。

于 2013-02-03T12:05:03.997 に答える
1
var x = window.setInterval(...);
// ...
window.clearInterval(x);
于 2013-02-03T12:05:15.743 に答える