CSS 如何影響首次加載時的白屏?xí)r間的解決方法_第1頁
CSS 如何影響首次加載時的白屏?xí)r間的解決方法_第2頁
CSS 如何影響首次加載時的白屏?xí)r間的解決方法_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第CSS如何影響首次加載時的白屏?xí)r間的解決方法含有外部css文件的渲染流水線

上圖中,請求HTML數(shù)據(jù)和構(gòu)建DOM中間有一段空閑時間,這段時間可能成為頁面渲染的瓶頸。DOM構(gòu)建結(jié)束后,css文件還未下載完成這段時間內(nèi),渲染流水線一直在等待,因?yàn)橄乱徊绞呛铣刹季謽洹:铣刹季謽湫枰狢SSOM和DOM,所以需要等待CSS加載結(jié)束并解析為CSSOM。這種情況下,CSS沒有阻塞DOM的生成。

CSSOM的作用

提供給JS操作樣式表的能力

為布局樹合成提供基礎(chǔ)的樣式信息

含有內(nèi)聯(lián)JS和外部CSS頁面的渲染流水線

從上圖中可以看到,構(gòu)建DOM過程中遇到JS會停止構(gòu)建,去解析執(zhí)行JS,因?yàn)镴S可能會修改當(dāng)前DOM。

在執(zhí)行JS腳本之前,若頁面中包含外部css或內(nèi)聯(lián)的css,渲染引擎需要將他們提前轉(zhuǎn)為CSSOM,因?yàn)镴S有修改CSSOM的能力,所以在JS執(zhí)行前,還要依賴CSSOM。這意味著CSS在部分情況下也會阻塞DOM生成。

含有外部JS和CSS頁面的渲染流水線

請求到的HTML數(shù)據(jù)在預(yù)解析過程中,檢測到有外部JS、CSS文件需要下載,同時發(fā)起兩個文件的下載請求,下載時間不是重疊的,是按照最久的那個來算。

不管CSS,JS誰先到達(dá),都要先等到CSS文件下載并生成CSSOM,然后執(zhí)行JS腳本,最后構(gòu)建DOM、布局樹、繪制頁面。

影響頁面展示因素及優(yōu)化策略

從輸入URL到頁面首次展示的三階段:

請求發(fā)出去后,到提交數(shù)據(jù)階段,此時頁面展示的還是之前頁面的內(nèi)容。

提交數(shù)據(jù)后,渲染進(jìn)程會創(chuàng)建一個空白頁面,這段時間稱為解析白屏,等待CSS和JS文件的加載完成,生成CSSOM和DOM,然后合成布局樹、XXX等步驟準(zhǔn)備首次渲染。

首次渲染完成后,就開始進(jìn)入完整頁面的生成階段,頁面會一點(diǎn)點(diǎn)被繪制出來。

最影響用戶體驗(yàn)的就是第二階段,包括解析HTML、下載CSS、下載JavaScript、生成布局樹、繪制頁面等操作。

優(yōu)化策略

內(nèi)聯(lián)CSS、JS,等到HTML下載好后便可直接開始渲染。

盡量減少文件大小,webpack移除注釋、壓縮文件。

將一些不需要在解析HTML階段使用的JS標(biāo)上async或defer。

對于大的CSS文件,可以通過媒體查詢,將其拆分為不同用途的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論