setinterval似乎加速了

时间:2013-04-05 11:54:04

标签: javascript

我在一个函数中有一个setinterval,在第一次单击时一切似乎都很好,但每次后续点击都会加速这个计时器。我不明白为什么。

function startGame() {
    var myVar=setInterval(function(){myTimer()},100);
}

2 个答案:

答案 0 :(得分:2)

当第二次点击时,第一个间隔也有效,因为此事件在100ms内发生两次。试试这个:

var myVar;
function startGame() {
    if(myVar)
        clearInterval(myVar);
    myVar=setInterval(function(){myTimer()},100);
}

OR:

var myVar;
function startGame() {
    if(!myVar)
        myVar=setInterval(function(){myTimer()},100);
}

答案 1 :(得分:0)

Setinterval将函数设置为每X毫秒运行一次,在你的情况下,我猜你单击一次,它开始每100毫秒运行一次,然后你再次点击它开始第二个每100毫秒运行一次(现在,平均每50毫秒运行一次。)

我会推荐setTimeout,但我不认为那也是你需要的。我认为你试图使用setinterval作为游戏循环,对吗?在这种情况下,您只需要一次运行它。