2014-09-26 35 views
0

是否有可能导致Google Chrome阻止绘制......以保持页面完全相同,没有动画或内容更改。防止通过CSS/JS/Chrome等在Google Chrome中重新绘制


我之所以这样问是因为我有created an extension对谁很难阅读网页的时候事情动画/闪烁/改变/等人。

它目前的工作方式是通过截图并将其层叠在页面上(绝对位置,具有高值z-index)。

但由于captureVisibleTab无法捕获整个页面(issue 45209),因此每次用户滚动页面时都需要重新创建屏幕截图。

但是,iOS 8 Safari到not pause printing while scrolling的变化让我想到可能会有另一种解决方法,试图模拟iOS 8的行为(我首选的东西,因为Reader View并不总是工作,或停止GIF动画) 。

回答

1

您不能停止执行线程,它的浏览器决定它。 但是为了防止CPU周期chrome的作用是在窗口模糊时暂停JavaScript执行线程。但是,由于您显示的z-index较高,因此您的窗口仍然处于活动状态。

一种可能的方式:

Disable the script for that url when the page is loaded. 

你可能会错过了动态内容,但你问:“没有动画或内容的变化”。 javscript的任何dom或风格操作都会导致重新绘制页面。禁用它可能是一个解决方案。不过,不太确定如何停止css动画。

我也看到了可以捕获完整的网页图像或pdf的扩展。你可以捕捉整个页面,并显示它们与任何背景变化无关

+0

关于执行线程的好处(我只是想知道是否有任何可能影响它的东西,例如,如果它认为它是背景/模糊选项卡) ...并想好禁用脚本(大概是通过chrome.contentSettings.javascript)......但禁用JS可能不会阻止GIF动画或CSS动画。 – 2014-09-26 10:03:36

+0

至于整页屏幕截图,我相信只有通过滚动页面并多次调用captureVisibleTab(缓慢/错误)或使用NPAPI扩展(不建议使用),或将URL发送到远程服务器才可能通过类似webkit2png的渲染(从安全/隐私/音量的角度来看,效果不好)......参见[issue 45209](https://code.google.com/p/chromium/issues/detail?id=45209) 。 – 2014-09-26 10:08:20

+0

@CraigFrancis您可以禁用GIF的帧动画。 – Shadow 2014-09-26 10:10:41

相关问题