【发布时间】:2011-10-20 14:54:48
【问题描述】:
我有一个使用 JavaScript 的 setInterval() 运行数字时钟的应用程序。我想知道它是否有超时或限制,它可以执行这个函数的次数。
【问题讨论】:
-
你的意思是回调会被执行多少次?不,没有限制。为什么这个问题被否决了?
我有一个使用 JavaScript 的 setInterval() 运行数字时钟的应用程序。我想知道它是否有超时或限制,它可以执行这个函数的次数。
【问题讨论】:
setInterval() 将无限运行。
如果您希望终止“循环”,您可以使用 clearInterval。例如:
var counter = 0;
var looper = setInterval(function(){
counter++;
console.log("Counter is: " + counter);
if (counter >= 5)
{
clearInterval(looper);
}
}, 1000);
【讨论】:
不,给定函数将继续执行,直到您使用 clearInterval() 手动清除间隔
请注意,在大多数浏览器中,当页面位于后台选项卡中时,您的函数仍会执行,但移动浏览器(尤其是 IOS5 Safari)可能会释放页面,直到其再次聚焦/可见。
【讨论】:
正如其他人所提到的,您的间隔运行的次数没有限制,但是如果您打算无限期地运行计时器,您应该考虑这里的信息:
Minimum setInterval()/setTimeout() delay on background tabs
如果您的用户可能会退出,1 秒似乎是安全的最小间隔
【讨论】: