【发布时间】:2016-03-13 22:27:35
【问题描述】:
当您最小化窗口或交换选项卡时,JavaScript 的 setInterval() 方法开始变得难以置信地不可靠。
我刚刚完成了我正在开发的应用程序的时间跟踪功能,该功能由setInterval 驱动。这一切都完美无缺,直到我开始最小化窗口并稍后返回它,才发现时间增加了一小部分,当窗口出现在屏幕上时。
这似乎是浏览器级别的“功能”。
是否有一个简单的替代方法可以将它换成实际使用时间单位的地方?
【问题讨论】:
-
Javascript 在窗口最小化时继续在后台运行。它甚至可以操作 DOM。这可能是您的代码的问题。我们能看到吗?
-
如果我选择的副本不能解决您的问题,请详细说明您的问题有何不同,我可以重新提出您的问题。如果它确实解决了您的问题,祝您编码愉快!
-
@magreenberg 问题是现代浏览器将
setInterval限制为在页面不可见时每秒最多运行一次(左右)。 -
哇,我不知道。好消息。
-
感谢 cmets 的各位。我已经用网络工作者方法交换了 setTimeout 实现,并且至少在 5~ 分钟的时间跨度内,问题看起来可能会得到解决。我会留下一个多小时,看看它是否解决了它。