协慌网

登录 贡献 社区

在 JavaScript 中停止 setInterval 调用

我正在使用setInterval(fname, 10000);在 JavaScript 中每 10 秒调用一次函数。是否有可能在某些事件上停止调用它?

我希望用户能够停止重复刷新数据。

答案

setInterval()返回一个间隔 ID,您可以将其传递给clearInterval()

var refreshIntervalId = setInterval(fname, 10000);

/* later */
clearInterval(refreshIntervalId);

请参阅setInterval()clearInterval()的文档。

如果将setInterval的返回值设置为变量,则可以使用clearInterval来停止它。

var myTimer = setInterval(...);
clearInterval(myTimer);

您可以设置一个新变量,并在每次运行时将其递增 ++(向上计数),然后我使用条件语句来结束它:

var intervalId = null;
var varCounter = 0;
var varName = function(){
     if(varCounter <= 10) {
          varCounter++;
          /* your code goes here */
     } else {
          clearInterval(intervalId);
     }
};

$(document).ready(function(){
     intervalId = setInterval(varName, 10000);
});

我希望它有所帮助,这是对的。