- 作者:admin
- 發(fā)表時(shí)間:2022-09-16 09:41:00
- 來源:
慢速原因一:關(guān)鍵子資源耗時(shí)較嚴(yán)重
頁面打開速度優(yōu)化建議:
1 ?
清除不必要的資源,避免進(jìn)行
不必要的下載
站點(diǎn)應(yīng)當(dāng)定期審核網(wǎng)頁上的資源是否是必需的,并評(píng)估該資源的價(jià)值與性能影響。
清除阻塞渲染的JS和CSS
如果要以最快速度完成首屏渲染,需要最大限度地減少網(wǎng)頁上關(guān)鍵JS/CSS子資源的數(shù)量,并盡可能清除這些資源,最大限度地減少下載量。
2 ?
使用代碼拆分減少JS負(fù)載
長時(shí)間運(yùn)行的JS可能會(huì)阻塞主線程,這時(shí)可以考慮使用requestAnimationFrame() 或 requestIdleCallback() 來進(jìn)行優(yōu)化。
根據(jù)不同的業(yè)務(wù)需求,開發(fā)者可以將JS中首屏的關(guān)鍵代碼拆分出來,這樣可以提前加載執(zhí)行首屏中必需的少量JS代碼,從而縮短頁面的加載時(shí)間。
其余的JS可以按需加載或者置后加載。同時(shí)建議開發(fā)者將JS優(yōu)先放在首屏渲染完成之后,放在body閉標(biāo)簽前面。
3 ?
優(yōu)化阻塞渲染的JS
為了實(shí)現(xiàn)最佳性能,可以讓頁面的JS進(jìn)行異步執(zhí)行,建議優(yōu)先考慮使用defer的方式,其次是async方式,并去除關(guān)鍵渲染路徑中任何不必要的JS。
1、優(yōu)化JS的使用方式,優(yōu)先使用異步JS資源
默認(rèn)情況下,JS資源會(huì)阻塞解析,強(qiáng)制等待CSSOM并暫停DOM的構(gòu)建,繼而大大延遲首屏渲染的時(shí)間。
異步JS資源則不會(huì)阻塞文檔解析器,如果腳本可以使用defer/async 屬性,也就意味著它并非是首屏渲染所必需的,可以考慮在首屏渲染后異步加載腳本。
2、延遲解析加載JS
為了最大限度減少內(nèi)核渲染網(wǎng)頁的工作量,建議開發(fā)者延遲所有非必需的、對構(gòu)建首屏渲染無關(guān)緊要的JS腳本,將JS優(yōu)先放在body閉標(biāo)簽處。
3、避免長時(shí)間運(yùn)行的JS
運(yùn)行時(shí)間長的JS會(huì)阻塞構(gòu)建 DOM、CSSOM以及網(wǎng)頁的渲染,所以任何對首屏渲染無關(guān)緊要的初始化邏輯和功能都應(yīng)延后執(zhí)行。
如果需要運(yùn)行較長的初始化序列,請考慮將它們拆分為若干個(gè)階段,以便瀏覽內(nèi)核可以間隔處理其它的渲染任務(wù)。
4 ?
優(yōu)化阻塞渲染的CSS
默認(rèn)情況下,關(guān)鍵CSS子資源是會(huì)阻塞內(nèi)核渲染的,請務(wù)必精簡網(wǎng)頁的CSS資源,同時(shí)需要將CSS盡快地完成下載,關(guān)鍵CSS子資源優(yōu)先放在head標(biāo)簽內(nèi),以便縮短首屏渲染的時(shí)間。
1、優(yōu)化CSS的使用方式
CSS是構(gòu)建渲染樹的必備元素,首次構(gòu)建網(wǎng)頁時(shí),確保將任何非必需的CSS資源都標(biāo)記為非關(guān)鍵資源(比如print),并應(yīng)確保盡可能減少關(guān)鍵CSS子資源的數(shù)量。
2、將關(guān)鍵CSS放在文檔head標(biāo)簽內(nèi)
盡早在HTML文檔內(nèi)指定所有必需的關(guān)鍵CSS資源,以便瀏覽內(nèi)核盡早發(fā)現(xiàn)link標(biāo)記并發(fā)出CSS請求下載。
3、避免使用CSS import指令
一個(gè)樣式表可以使用CSS import指令從另一個(gè)樣式表文件導(dǎo)入規(guī)則。
不過應(yīng)避免使用這些指令,因?yàn)樗鼈儠?huì)在關(guān)鍵路徑中增加往返次數(shù)從而影響首屏渲染性能。
2
慢速原因二:主文檔耗時(shí)
頁面打開速度優(yōu)化建議:
優(yōu)化和壓縮資源,減小總下載文件大小
優(yōu)化和壓縮資源來最大限度地減小總下載大小,來提高網(wǎng)頁加載速度。
開發(fā)者可以考慮通過簡化編碼來優(yōu)化主文檔大小,同時(shí)可以采用chunk編碼,服務(wù)器分chunk輸出,以及通過GZIP來壓縮主文檔資源。
3
慢速原因三:頁面存在額外跳轉(zhuǎn)
頁面打開速度優(yōu)化建議:
從用戶點(diǎn)擊到打開頁面的過程中,有些網(wǎng)站內(nèi)可能經(jīng)過額外跳轉(zhuǎn)才會(huì)將最終的頁面展現(xiàn)給用戶,所以建議開發(fā)者去除額外的跳轉(zhuǎn)。