4

我正在使用 setTimeout 运行一个 JavaScript 程序,该程序将使用 AJAX 获取外部数据并每 1000 毫秒或一秒更新一次页面内容。

当我的网页所在的选项卡位于最前面时,这非常有效。但是,如果页面在具有多个选项卡的浏览器窗口中运行,并且用户当前不在该选项卡中,那么 setTimeout 将开始滞后(在一分钟内,而不是更新 60 次,它只更新大约 30 次)。

但是,如果网页位于后台浏览器窗口的最前面,则 setTimeout 将继续以正确的速度运行。

有人可以解释为什么会发生这种情况,以及解决这个问题的任何方法吗?

4

1 回答 1

3

Browsers squelch timer frequencies when tabs aren't active to save battery life for users.

于 2013-10-11T22:27:22.797 回答