我正在使用setTimeout来运行一个JavaScript程序,该程序将使用AJAX来获取外部数据并每1000毫秒或一秒钟更新一次页面内容。
当我的网页所在的标签位于最前端时,此功能完全正常。但是,如果页面在具有多个选项卡的浏览器窗口中运行,并且用户当前不在该选项卡中,则setTimeout将开始滞后(在一分钟内,而不是更新60次,它仅在30左右更新)。
但是,如果网页位于后台浏览器窗口的最前端,则setTimeout将继续以正确的速度运行。
有人可以解释为什么会发生这种情况,以及解决这个问题的方法吗?
答案 0 :(得分:3)
当标签处于非活动状态时,浏览器会抑制定时器频率,以节省用户的电池寿命。