chrome瀏覽器渲染白屏問題剖析

2021-09-08 23:11:25 字數 1014 閱讀 7689

剛截圖十幾次,終於捕捉到了這個白屏現象,hiahia~~

大家可以很清晰地看到下邊還木有渲染完畢的透明層,這是乙個十分普遍的問題,經常遇到。我的瀏覽器版本是

到目前為止應該是最新版(release版本),之前的版本應該也存在類似的問題。只要處理好**,這種體驗相當不好的白屏問題是可以避免的,qzone的頁面貌似就沒有這個現象。首先我們來聊一聊這個問題是怎麼產生的,這涉及到chrome瀏覽器對網頁的解析和渲染。

渲染引擎首先通過網路獲得所請求文件的內容,通常以8k分塊的方式完成。

下面是渲染引擎在取得內容之後的基本流程:

解析html以構建dom樹->構建render樹->布局render樹->繪製render樹

渲染引擎開始解析html,並將標籤轉化為內容樹中的dom節點。接著,它解析外部css檔案及style標籤中的樣式資訊。這些樣式資訊以及html中的可見性指令將被用來構建另一棵樹——render樹。

render樹由一些包含有顏色和大小等屬性的矩形組成,它們將被按照正確的順序顯示到螢幕上。

render樹構建好了之後,將會執行布局過程,它將確定每個節點在螢幕上的確切座標。再下一步就是繪製,即遍歷render樹,並使用ui後端層繪製每個節點。

如果我們在render樹未完全繪製並渲染之前,向下快速拖動滾動條會看到上圖所示的白屏現象。那這種現象可以通過什麼方式來處理呢?應該說這是避免不了的,我們能做的就是:

關於瀏覽器的工作原理,有興趣的可以上網搜搜。

本文同步自我的github部落格。 

VUE解決IE瀏覽器白屏問題

vue專案本地或部署到伺服器,所有瀏覽器都可以開啟,除了ie瀏覽器,ie瀏覽器開啟白屏 報語法錯誤。1 安裝 babel polyfill npm install babel polyfill2 在main.js中引入 import babel polyfill 3 修改配置 webpack bas...

Chrome瀏覽器跨域問題

最近在做乙個web的專案,但從git中得到源 後,在chrome中執行,出現跨域問題,因為前端 需要向後端伺服器發出跨域請求。那麼我們在開發階段如何能夠讓瀏覽器跨域呢?我們可以使用chrome來進行跨域。2.在桌面設定該chrome的快鍵選單 3.滑鼠右鍵開啟快捷選單的屬性,設定 disable w...

chrome瀏覽器安裝

在centos 7.x 安裝chrome 瀏覽器的方法。首先在 etc yum.repos.d目錄中建立google chrome.repo檔案,其寫入如下內容 plain view plaincopy google chrome name google chrome baseurl enabled...