CSS 性能優(yōu)化的五個(gè)簡(jiǎn)單步驟
為了加快網(wǎng)頁(yè)的渲染速度并改善最終用戶(hù)體驗(yàn),請(qǐng)考慮以下五個(gè) CSS 性能優(yōu)化技巧。
1. 使用內(nèi)聯(lián)樣式
如果給定樣式僅用于單個(gè)特定頁(yè)面元素(例如圖像滑塊或輪播)并且該組件僅用于站點(diǎn)中的少數(shù)頁(yè)面,請(qǐng)使用內(nèi)聯(lián)樣式而不是通用加載的 CSS 文件。這不僅會(huì)減少外部樣式表的大小,還會(huì)減少在不使用該組件的頁(yè)面上發(fā)生的 CSS 選擇器評(píng)估的數(shù)量。
2. 使用特定的樣式
不要將樣式應(yīng)用于通用選擇器、后代選擇器和頂級(jí) HTML 元素。這樣做會(huì)觸發(fā)許多布爾評(píng)估。相反,通過(guò)選擇更細(xì)粒度的元素(例如單個(gè)類(lèi)樣式)來(lái)優(yōu)化 CSS 性能。
3. 使用 WebComponents 優(yōu)化 CSS
WebComponents 是自包含的,減少了對(duì)共享 CSS 和 JavaScript 的需求,WebComponents 框架是一種相對(duì)較新的基于標(biāo)準(zhǔn)的方法,用于創(chuàng)建可重用組件,其中 JavaScript 和樣式是自包含和隔離的。當(dāng)你將組件所需的樣式保留在全局共享的 CSS 文件之外時(shí),你不會(huì)看到對(duì)站點(diǎn)的其他區(qū)域的性能影響,因?yàn)槲词褂玫臉邮綉?yīng)用程序會(huì)不必要地消耗時(shí)鐘周期。
4. 拆分你的 CSS 文件
如果你的許多 CSS 文件是針對(duì)特定瀏覽器或設(shè)備定制的,請(qǐng)將這些樣式分解為多個(gè) CSS 文件。在運(yùn)行時(shí),僅加載必要的那些。
這個(gè) CSS 性能優(yōu)化技巧將需要一些客戶(hù)端 JavaScript 或服務(wù)器端處理來(lái)完成,但對(duì)用戶(hù)的好處將值得付出額外的努力。
例如,如果移動(dòng)和桌面呈現(xiàn)顯著不同,這可能會(huì)在每種設(shè)備類(lèi)型上將文檔對(duì)象模型 (DOM) 評(píng)估的數(shù)量減少 50%。
5. 減小 DOM 的大小
用于拆分 CSS 文件的技巧也可用于減小 DOM 的大小。
另一個(gè) CSS 性能優(yōu)化技巧類(lèi)似于將 CSS 文件拆分為多個(gè)特定于設(shè)備的文件。相反,你還可以縮小網(wǎng)頁(yè)本身的大小,減少 HTML 中 DOM 元素的數(shù)量,從而加快客戶(hù)端渲染速度。
但是,處理 CSS 的問(wèn)題不僅在于需要應(yīng)用于頁(yè)面的樣式數(shù)量,還在于實(shí)際頁(yè)面上的 DOM 元素?cái)?shù)量。許多采用響應(yīng)式設(shè)計(jì)的現(xiàn)代網(wǎng)頁(yè)會(huì)在每個(gè)頁(yè)面請(qǐng)求上加載 HTML 源代碼,以實(shí)現(xiàn)移動(dòng)和桌面體驗(yàn)。相反,使用客戶(hù)端 JavaScript 甚至服務(wù)器端技術(shù)來(lái)確保不會(huì)將多余的 HTML 加載到永遠(yuǎn)不會(huì)使用它的頁(yè)面上。這可以顯著減少 DOM 大小以及頁(yè)面需要經(jīng)過(guò)的樣式表評(píng)估次數(shù)。
樣式表是現(xiàn)代網(wǎng)站開(kāi)發(fā)人員最好的朋友,但它們通常會(huì)帶來(lái)隱藏的性能成本。遵循這五個(gè) CSS 性能優(yōu)化建議,減少 CSS 選擇器成為網(wǎng)站性能瓶頸的可能性。想往前端發(fā)展的小伙伴建議參加Web前端培訓(xùn)來(lái)學(xué)習(xí)前端技術(shù),有系統(tǒng)規(guī)范的課程,有經(jīng)驗(yàn)豐富的專(zhuān)業(yè)講師面授指導(dǎo)教學(xué),能在短時(shí)間內(nèi)學(xué)有所成。