javascript – Chrome标签崩溃/悬挂后带来了前景长时间在背景

前端之家收集整理的这篇文章主要介绍了javascript – Chrome标签崩溃/悬挂后带来了前景长时间在背景前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个页面显示实时统计.它运行了大量的 JavaScript,使得很多HTTP请求,使用D3.js每几秒钟呈现SVG图表,具有大量CSS动画,并经常重新排列DOM.

只要页面集中,它运行顺利.如果我切换到另一个选项卡,稍后再回来,通常会有一个短暂的暂停,页面似乎被冻结,在视图突然看起来似乎复活之前,该页面再次可用.标签已经被背景越长,这个暂停的时间越长.如果选项卡已经在后台很长时间(小时),并且我切换到它,它将被冻结很长时间,然后崩溃.

所有这些行为都在Chrome中观察到.我在其他浏览器中测试不了很多.

标签位于后台时,Chrome不会执行什么操作,当我第一次切换回标签时,该暂停期间该怎么办?

更新:

我也在做一些jQuery动画. This answerthis one可能相关.

根据第一个答案:

“Inactive browser tabs buffer some of the setInterval or setTimeout functions.”

stop(true,true) will stop all buffered events and execute immediatly only the last animation.

我在我的代码添加了一个.stop(true,true)的调用,至少在短时间内,我没有检测到打嗝.我需要在后台离开很长时间,然后再测试一下,然后才能判断是否有显着差异.

解决方法

我们与SVG图形有类似的问题,并设法使用HTML5引入的页面Visibility API来解决它.如果有人绊倒这个问题,请参考下面的文章 Using the Page Visibility API

我们设法做的是当浏览器窗口不可见时暂停所有SVG渲染活动.这设法阻止该标签崩溃.

猜你在找的JavaScript相关文章