performance

改善網站效能:將 icon 轉為 font 字型

改善網站效能:將 icon 轉為 font 字型

現代網站設計中充滿了各式各樣的 icon,若是自有品牌或產品,設計師更常會為了強化視覺一致性而客製一整套的 icon 圖示。 而從我們工程師的角度來看,icon 本質上就是一種圖片,既然是圖片的一種形式,當 icon 使用量一多,自然就會牽涉到與圖片相同的效能問題。為什麼 icon 太多會影響效能? 為什麼 icon 太多會影響效能? 通常 icon 是以圖片檔案(例如: SVG 或 PNG )呈現,若網站載入時每個 icon 圖示都會觸發一個 HTTP Request,不僅延長載入時間,一次大量圖片載入會增加 Render 渲染時間或主執行緒負擔。 別忘了,Client Browser 的 JavaScript 執行是單執行緒,無論是同步或非同步操作,本質上都還是在爭奪主執行緒資源。如果沒有另外開啟 Web Worker,圖片的下載、解析與渲染過程都會壓在主執行緒上,
SimonAllen

自幹 React Img LazyLoad 元件

為什麼要使用圖片 LazyLoad? 1. 減少頻寬浪費 圖片與影片是網站中最吃資源的元素之一,尤其在行動網路環境下,過度 PreLoad 預載會導致頻寬浪費。LazyLoad 可延遲非可視範圍內的圖片載入,只在使用者滑動到該區域時才載入圖片。 2. 提升首次載入速度 圖片載入不只是下載,還會耗用瀏覽器 CPU 解析與渲染時間。 LazyLoad 可避免瀏覽器在首次載入時就忙著處理整頁圖片,提升 First Paint 時間,讓內容更快顯示。 3. 強化使用者體驗 使用者更快看到畫面上可見的內容,自然會覺得「這網頁好快」。反之,如果等圖卡住了頁面,體驗就會大打折扣。 各大網站 LazyLoad 的應用範例 PChome 先顯示灰底圖片,等圖片載入後才替換。 ETtoday 有 loading 動畫的底圖,載入圖片後再替換。 Medium 的高級做法:漸進式圖片置換 Medium 的做法分成三階段: 1.
SimonAllen