javascript计时器循环

时间:2011-12-29 01:55:37

标签: javascript timer

我想创建一个计时器,一旦达到某一点,计时器就会重置,然后重新开始。

现在,我已经设置了循环,作为测试,我希望它在5000毫秒(5秒)后重置。但是反击都是乱七八糟的。

WIP演示:http://jsfiddle.net/stursby/wUHA3/

2 个答案:

答案 0 :(得分:58)

请考虑使用setInterval而不是setTimeout。它将自动重复,直到您清除间隔。

setInterval(myMethod, 5000);

function myMethod( )
{
  //this will repeat every 5 seconds
  //you can reset counter here
}

答案 1 :(得分:5)

我同意keyboardP您可能应该使用setInterval而不是setTimeout。但是,要回答原始问题,您遇到计时器问题的原因是因为您的重复逻辑。不要使用:

var diff = (new Date().getTime() - start) - time;
window.setTimeout(instance, (100 - diff));

您不需要尝试并考虑执行时间(我假设您正在尝试使用diff)。假设它可以忽略不计并使用:

setTimeout(instance, 100);

您的问题已得到解决,您可以在this jsFiddle中看到。