有没有办法在运行时修改使用 setInterval 设置的函数的调用间隔,而不是删除它(clearInterval)并使用不同的值再次恢复?
问问题
12429 次
2 回答
14
改用 setTimeout,另外这是异步 JS 的非阻塞方法:
var interval = 1000;
function callback() {
console.log( 'callback!' );
interval -= 100; // actually this will kill your browser when goes to 0, but shows the idea
setTimeout( callback, interval );
}
setTimeout( callback, interval );
不要使用setInterval
,因为在某些情况下(很多setInterval
+ 长回调,通常比超时时间长),由于队列大小有限,一些回调将被浏览器丢弃并且永远不会执行。只setTimeout
保证执行。
于 2013-02-26T14:05:14.203 回答
2
没有; 如果您使用过,删除间隔并重新添加它是一种方法setInterval()
。
但是,您可以通过setTimeout()
在最后以可变延迟重复调用来实现不同超时的相同目标。
出于好奇,你在做什么,你想修改间隔?也许requestAnimationFrame()
可能更合适?
于 2013-02-26T14:03:43.743 回答