2014-09-26 74 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

相關問題