VueJS在未激活的浏览器选项卡上阻止了活动

时间:2019-05-28 14:37:14

标签: javascript vue.js browser settimeout

我有一个用Typescript和VueJS编写的Web应用程序,用于执行任务(ajax请求)的集合并跟踪整个过程(并逐个执行一个任务),我使用Vue实例作为总线来通知组件之间的更改。 如果用户打开新的浏览器选项卡,则该过程停止。如果用户回来,则过程继续。

Firefox和Chrome中存在此问题。 我在代码中放了一个简单的window.setInterval,每隔2秒记录一次“ Hello”,并且...惊奇地,我每2秒记录一次“ Hello”而没有任何暂时的“空洞”。 对于类似情况,我在github中看到一个非常老的问题:https://github.com/vuejs/Discussion/issues/76,但似乎太老了,无法做到这一点。

我希望该过程不会停止,但会继续进行而不会受到干扰。

1 个答案:

答案 0 :(得分:1)

https://developers.google.com/web/updates/2017/03/background_tabs

  

“背景”标签可能会对浏览器性能(尤其是电池寿命)产生巨大的负面影响。为了缓解这种情况,Chrome过去几年一直在对背景标签进行各种限制。最近,我们进行了许多努力以进行进一步的改进,并且本文概述了Chrome政策。本文档重点介绍Chrome 57中的当前策略。可以在本文档中找到长期策略和进一步的计划。

https://www.chromestatus.com/feature/6172836527865856

  

作为一项干预,我们想限制允许后台页面使用的CPU数量,并在违反此限制时限制计时器队列。当前目标是后台页面CPU负载水平应低于1%。