前端性能優(yōu)化清單

本文參考

以下是針對目前公司項(xiàng)目(我參與的項(xiàng)目)的具體情況,整理出來的優(yōu)化點(diǎn)

一、目前的spa單頁面應(yīng)用的性能瓶頸主要有哪些?

1、首屏渲染慢
...
(歡迎補(bǔ)充)

二、 原因分析

1、 首屏渲染慢, 主要有以下原因

  • 文件過大, 加載、解析占用了過多時間
  • 加載了無用的資源(其他頁面的資源)

三、如何優(yōu)化

1. 啟用 Gzip ☆☆☆☆☆

Gzip 壓縮通??梢詼p少 70% 的響應(yīng)大小,對某些文件更可能高達(dá) 90%。主流 Web 服務(wù)器都有相應(yīng)模塊,而且絕大多數(shù)瀏覽器支持 gzip 解碼。所以,應(yīng)該對 HTML、CSS、JS、XML、JSON 等文本類型的內(nèi)容啟用壓縮。

注意,圖片和 PDF 文件不要使用 gzip。它們本身已經(jīng)壓縮過,再使用 gzip 壓縮不僅浪費(fèi) CPU 資源,而且還可能增加文件體積。

目前我們的服務(wù)器都默認(rèn)開啟了gzip。

2. code-splitting 代碼分割 ☆☆☆☆☆

作用:避免加載不必要的資源。
使用:

# webpack3 使用import() , webpack2使用require.ensure
const riskManage = ()=> import(/* webpackChunkName: 'hfq-****' */ 'pages/****/index')

效果:

  • 頁面加載的資源大小從2.3M減少為1.2M, 減少了50%。
  • 頁面加載時間從11.04s縮短為8.37s. 頁面加載時間縮短了25%。


    優(yōu)化前后對比.jpeg

部分項(xiàng)目未做代碼切割,如boss系統(tǒng)

3. 利用service workers實(shí)現(xiàn)緩存。 ☆☆☆☆

需要在https協(xié)議下運(yùn)行, 可大幅提高用戶體驗(yàn),目前沒有項(xiàng)目用到。

4. 圖片優(yōu)化 ☆☆☆

適用于圖片比較多的應(yīng)用。

5. 資源加載優(yōu)化(提前加載、延遲加載、異步加載) ☆☆☆

  • defer 異步加載腳本,所有元素加載完成之后, DOMContentLoaded事件觸發(fā)之前執(zhí)行。

  • async 異步加載腳本,加載完即執(zhí)行。


    image.png
  • prefecth 加載下一個頁面可能用到的資源

  • preload 提前加載當(dāng)前頁面的資源

對于當(dāng)前頁面很有必要的資源使用 preload,對于可能在將來的頁面中使用的資源使用 prefetch。

  • dns-prefetch DNS預(yù)解析

適用于大多數(shù)項(xiàng)目

6. 優(yōu)先加載關(guān)鍵的css ☆☆

  • 優(yōu)化首屏渲染

7. Intersection Observer 判斷元素是否出現(xiàn)在視圖中 ☆☆

  • 資源(如圖片)懶加載
  • 列表滾動加載

8. 字體優(yōu)化 ☆☆

9. 合理使用CDN ☆☆☆☆

...
歡迎補(bǔ)充


附上幾篇好文:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容