首页 > 解决方案 > Mac safari set Interval pause when tab is in background

问题描述

我们使用 setInterval 和 setTimeout 都在我们的演示中尝试了一段时间。在 safari 上,我们将最小化屏幕,这两种方法会暂停并且不起作用。因此,我们将在 windows chrome 和 mac safari 中得到值不匹配。

任何人都可以帮忙吗?

谢谢!

标签: javascriptjquery

解决方案


Chrome 在某些情况下也会暂停或减慢计时器,如果 Firefox 没有,我会感到惊讶。您无法控制浏览器在不活动时如何取消窗口/选项卡的优先级。

依赖计时器间隔从来都不是一个好主意,无论是setTimeout还是setInterval. 任何数量的事情都可能延迟计时器回调,使其比您要求的时间晚。

如果经过的确切时间量很重要,请记住您启动计时器的时间 ( const start = Date.now();) 并找出调用计时器回调时的实际const elapsed = Date.now() - start;时间 ( ) 并采取相应措施。


推荐阅读