前端效能優化紀錄
前端搭建技術:React, webpack
佈署 web server:Nginx
網頁效能常見術語
- TTFB, Time to First Byte:第一個 byte 傳來的時間
- FP, First Paint:瀏覽器開始繪製第一個 pixel 的時間
- FCP, First Contentful Paint:第一個能被使用者看見的內容出現的時間
- TTI, Time To Interactive:直到可以互動為止的時間
為何要提升第一次進系統的速度
-
對 SEO 較好:有關於瀏覽器爬蟲每天分配給我們網站的時數有限
-
提升使用者體驗
提升第一次進系統速度的思路
除了叫使用者換快一點的網路之外,縮短下載速度是一個可以下手的點…
縮小 bundle size
- 檢查並刪掉不需要的 code(註解或沒用到的 import 之類的)
- 增加系統模組化程度,抽出共用邏輯、元件等等
- 壓縮 bundle:使用壓縮演算法(例如 gzip、Brotli)來縮小 bundle 的大小,從而減少傳輸時間。
- 使用 CompressionWebpackPlugin 在打包時對檔案進行壓縮
- Nginx config 增加
gzip on;
,開啟 gzip 模式
利用 cache
- html header cache 設定
- 打包設定 split chunks 方便瀏覽器 cache
- 打包設定輸出包含 hash 的檔案作為類似於 Etag 的功能
設定 dynamic import
以 route 為單位設定 dynamic import
- React
<suspense/>
andReact.lazy