setInterval函数循环过快

时间:2014-11-14 18:38:39

标签: javascript jquery

我有类似于下面的代码,并且setInterval的运行速度比1000毫秒快很多,它会使页面崩溃/变慢。

var checkDiffTest = function(){

    console.log('test checkDiff init');

    var interval = setInterval(countdownTest(), 1000);

}
var countdownTest = function(){

    console.log('test countdown init');

    checkDiffTest();

}

countdownTest();

1 个答案:

答案 0 :(得分:4)

每次间隔运行时,您都要设置一个新间隔:

  • 您的间隔调用countdownTest()
  • 名为checkDiffTest()
  • 创建新间隔(最后一个间隔仍在运行)

每1000毫秒启动一个新的1000毫秒间隔。


看起来好像你想要setTimeout()

另外countdownTest()作为setInterval的第一个参数立即调用该函数。您希望将该函数作为参考传递:

var checkDiffTest = function(){
    console.log('test checkDiff init')
    var interval = setTimeout(countdownTest, 1000);

}
var countdownTest = function(){
    console.log('test countdown init');
    checkDiffTest();
}

countdownTest();