Javascript 在什么情况下浏览器拒绝继续调用setInterval回调?

Javascript 在什么情况下浏览器拒绝继续调用setInterval回调?,javascript,setinterval,Javascript,Setinterval,我正在处理一个困难的bug,其中setInterval回调只被调用20或21次,然后再也不会被调用,尽管我从未清除过该间隔。(至少在铬合金中运行) 页面保持响应,因此回调不会陷入无限循环中 如果setInterval回调执行时间过长,浏览器是否决定停止调用它?例如,如果在setInterval回调中执行一些昂贵的画布绘制 不幸的是,在这个问题中,有太多可能涉及的层(即React、Redux、自定义Redux中间件、画布绘制)无法在这里发布一个好的代码示例。我问的是现代浏览器中setInterva

我正在处理一个困难的bug,其中setInterval回调只被调用20或21次,然后再也不会被调用,尽管我从未清除过该间隔。(至少在铬合金中运行)

页面保持响应,因此回调不会陷入无限循环中

如果setInterval回调执行时间过长,浏览器是否决定停止调用它?例如,如果在setInterval回调中执行一些昂贵的画布绘制

不幸的是,在这个问题中,有太多可能涉及的层(即React、Redux、自定义Redux中间件、画布绘制)无法在这里发布一个好的代码示例。我问的是现代浏览器中setInterval的预期行为

编辑我想我可能在Chrome中看到了一个bug,与
setInterval
/
setTimeout
中的画布绘制有关。我无法在Firefox中复制。

根据文档判断,唯一提到的标准行为的“变化”似乎是:

从Gecko 5.0(Firefox 5.0/Thunderbird 5.0/SeaMonkey 2.2)开始,在非活动选项卡中,间隔被限制为每秒触发不超过一次


你是如何确认没有召回间隔的?你能提供一个链接,在那里我们可以看到并检查这个假定的失败吗?不幸的是,没有,这是在一个私有的预发布产品中。即使我的CSS转换在间隔消失后也会停止工作。我想我可能是在处理Chrome中的一个bug。调试一个你看不到的代码很困难……如果我能想出最少的重新编程代码,我会发布它,如果我能得到一个bug报告并被接受,我会发布它作为一个答案。不幸的是,这不是问题所在。该选项卡处于活动状态。