我正在处理一个困难的错误,其中setInterval回调只被调用20或21次,然后再也没有,即使我从未清除过这个间隔。 (至少在Chrome中运行)
页面保持响应,因此回调不会陷入无限循环。
如果执行时间太长,浏览器是否决定停止调用setInterval回调?例如,如果在setInterval回调中执行了一些昂贵的画布绘制?
不幸的是,在这个问题中有太多可能涉及的层(即React,Redux,自定义Redux中间件,Canvas绘图)在这里发布一个好的代码示例。我在询问现代浏览器中setInterval的预期行为。
编辑我想我可能会在Chrome浏览器中看到一个与setInterval
/ setTimeout
内的画布相关的错误。我无法在Firefox中重现。
答案 0 :(得分:1)
根据setInterval文件判断,仅提及"变体"从标准行为似乎是:
从Gecko 5.0(Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2)开始,在非活动标签中,间隔被限制为每秒不超过一次。