含有外部 css 文件的渲染流水線
上圖中,請求 HTML 數(shù)據(jù)和構(gòu)建 DOM 中間有一段空閑時(shí)間,這段時(shí)間可能成為頁面渲染的瓶頸。DOM 構(gòu)建結(jié)束后,css 文件還未下載完成這段時(shí)間內(nèi),渲染流水線一直在等待,因?yàn)橄乱徊绞呛铣刹季謽洹:铣刹季謽湫枰?CSSOM 和 DOM,所以需要等待 CSS 加載結(jié)束并解析為 CSSOM。這種情況下,CSS 沒有阻塞 DOM 的生成。
CSSOM 的作用
含有內(nèi)聯(lián) JS 和 外部 CSS 頁面的渲染流水線
從上圖中可以看到,構(gòu)建 DOM 過程中遇到 JS 會(huì)停止構(gòu)建,去解析執(zhí)行 JS,因?yàn)?JS 可能會(huì)修改當(dāng)前 DOM。
在執(zhí)行 JS 腳本之前,若頁面中包含外部 css 或內(nèi)聯(lián)的 css,渲染引擎需要將他們提前轉(zhuǎn)為 CSSOM,因?yàn)?JS 有修改 CSSOM 的能力,所以在 JS 執(zhí)行前,還要依賴 CSSOM。 這意味著 CSS 在部分情況下也會(huì)阻塞 DOM 生成。
含有外部 JS 和 CSS 頁面的渲染流水線
請求到的 HTML 數(shù)據(jù)在預(yù)解析過程中,檢測到有外部 JS、CSS 文件需要下載,同時(shí)發(fā)起兩個(gè)文件的下載請求,下載時(shí)間不是重疊的,是按照最久的那個(gè)來算。
不管 CSS,JS 誰先到達(dá),都要先等到 CSS 文件下載并生成 CSSOM,然后執(zhí)行 JS 腳本,最后構(gòu)建 DOM、布局樹、繪制頁面。
影響頁面展示因素及優(yōu)化策略
從輸入 URL 到頁面首次展示的三階段:
最影響用戶體驗(yàn)的就是第二階段,包括解析 HTML、下載 CSS、下載 JavaScript、生成布局樹、繪制頁面等操作。
優(yōu)化策略
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選