【shout out to 莫力全✨今晚,我想來點 Web 前端效能優化大補帖!】
讀後重點整理 & 重述 & 一點點自己的補充
幾乎所有的網站都一定會用到圖片和 icon,甚至可能會需要載入大量的圖片,它們也是網站中佔比最多的資源,所以透過優化這些圖片資源,就可能帶來很大的效能提升。能用 CSS 做到就用 CSS,不要輕易使用耗費大量資源的圖片君。
它們是由像素陣列(Pixel Array)來表示的圖像,檔案大小較大,耗能較高。
這時候就會想問,耗能很高怎麼辦~~~
就跟我們棉被衣服太厚,很佔空間怎麼辦是一樣的解法:壓縮它就對了!圖片壓縮後大小就變小囉。有的公司會建立自己的圖片壓縮服務,或是使用 webpack 等 module bundler 來將壓縮整合到開發流程裡,或是使用線上平台。但先別急著開始壓縮!
壓縮前先看看特點跟使用時機:
JPG
PNG
向量圖
建議優先使用 SVG 的情境,例如:企業的 Icon、圖表、圖示...等。而 PNG 與 JPG 等點陣圖其實也可以轉為向量圖,但並不是所有的點陣圖都適合轉檔,比較適合的情境有:
網頁要響應式設計 (RWD),圖片也需要響應式。響應式圖片的概念就跟 RWD 很像,我們需要依照裝置的變化,調整版面 (圖片)。如果一張圖片用到底,有可能長寬比失衡或解析度失真。另外,如果在小尺寸的裝置下載非常大尺寸的照片,除了會增加 page load time,瀏覽器也會為了縮小大圖而耗費性能。這時候就需要依據不同的瀏覽器視窗大小、裝置解析度,呈現對應大小的圖片。
同一張圖分為 1x、2x、3x 總共三個版本,1x~3x 代表的是圖片解析度,不同裝置需要依照不同的 DPR (device pixel ratio,詳細介紹查看連結文章) 來呈現尺寸適合的圖片。
實際上我的專題該怎麼去處理 1x 2x 3x 這個問題,目前還在嘗試中...