我有一个页面显示实时统计.它运行了大量的
JavaScript,使得很多HTTP请求,使用D3.js每几秒钟呈现SVG图表,具有大量CSS动画,并经常重新排列DOM.
只要页面集中,它运行顺利.如果我切换到另一个选项卡,稍后再回来,通常会有一个短暂的暂停,页面似乎被冻结,在视图突然看起来似乎复活之前,该页面再次可用.标签已经被背景越长,这个暂停的时间越长.如果选项卡已经在后台很长时间(小时),并且我切换到它,它将被冻结很长时间,然后崩溃.@H_301_3@
所有这些行为都在Chrome中观察到.我在其他浏览器中测试不了很多.@H_301_3@
当标签位于后台时,Chrome不会执行什么操作,当我第一次切换回标签时,该暂停期间该怎么办?@H_301_3@
更新:@H_301_3@
我也在做一些jQuery动画. This answer和this one可能相关.@H_301_3@
根据第一个答案:@H_301_3@
“Inactive browser tabs buffer some of the setInterval or setTimeout functions.”@H_301_3@
stop(true,true) will stop all buffered events and execute immediatly only the last animation.@H_301_3@
我在我的代码中添加了一个.stop(true,true)的调用,至少在短时间内,我没有检测到打嗝.我需要在后台离开很长时间,然后再测试一下,然后才能判断是否有显着差异.@H_301_3@