【发布时间】:2013-11-29 20:07:22
【问题描述】:
所以,这是我用来设置间隔的代码,它每 0.1 秒触发一次 draw()
var intervalTime = 100;
setInterval(draw, intervalTime);
function draw() {
if( i == 1 ) intervalTime = 50;
}
我想知道当我变为 1 时如何将 intervalTime 更改为 50。上面的代码似乎不是这样工作的。停留在0.1s的间隔时间
【问题讨论】:
-
改用 setTimeout 来调用函数,然后在函数内部调用。特别是对于小间隔并且如果您的函数需要相当长的时间,这种方法会更好,因为它可以确保至少有 X 毫秒。通话之间。 setInterval 的唯一潜在好处可能是(但不是!)它确实在那些指定的时间点调用该函数,但实际上它只是将它们放入队列中,因此没有好处,只有缺点。我个人建议完全反对 setInterval。计时器的工作原理:ejohn.org/blog/how-javascript-timers-work
-
或清除间隔并重新创建
-
一旦将区间速度传递给函数,就无法更改,所以cmets中的上述解决方案之一是唯一的方法。
-
清除间隔并在一次运行后创建一个新间隔应该从一开始就使用 setTimeout 来完成。每次再次删除它并不是真正的间隔。
标签: javascript function time draw intervals