javascript - Mac safari set Interval pause when tab is in background
问题描述
我们使用 setInterval 和 setTimeout 都在我们的演示中尝试了一段时间。在 safari 上,我们将最小化屏幕,这两种方法会暂停并且不起作用。因此,我们将在 windows chrome 和 mac safari 中得到值不匹配。
任何人都可以帮忙吗?
谢谢!
解决方案
Chrome 在某些情况下也会暂停或减慢计时器,如果 Firefox 没有,我会感到惊讶。您无法控制浏览器在不活动时如何取消窗口/选项卡的优先级。
依赖计时器间隔从来都不是一个好主意,无论是setTimeout
还是setInterval
. 任何数量的事情都可能延迟计时器回调,使其比您要求的时间晚。
如果经过的确切时间量很重要,请记住您启动计时器的时间 ( const start = Date.now();
) 并找出调用计时器回调时的实际const elapsed = Date.now() - start;
时间 ( ) 并采取相应措施。
推荐阅读
- python - 使用 python PIL 或 cv2 在一个文件夹中裁剪和切片多个图像,然后保存在另一个文件夹中
- python - 如何设置 html 模板以在 Django 中呈现我的视图和 OneToOne 模型?
- typescript - 嵌套对象键类型到映射联合
- javascript - 带有返回承诺的承诺的可取消超时
- javascript - 如何在 Svelte 中使用开关渲染组件?
- java - Java 17 中的 ForkJoinPool 性能
- stored-procedures - 有没有办法在雪花中并行执行存储过程
- react-native - 有没有办法在领域中以正确的方式呈现 One2Many 关系?
- java - XML - SimpleFramework 解析为 Kotlin/JAVA
- python - Python中止的线程卡住了