萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> 交互設計 >> 用戶體驗至上:前端開發中的圖片優化簡述

用戶體驗至上:前端開發中的圖片優化簡述

  文/來自竹林

  現在的互聯網,是一個用戶體驗至上的時代,大多數公司都會把如何提高產品的易用性放在首要位置。如何提高產品的質量則體現在項目開發的很多階段,例如產品設計、UI設計和前端開發等。而圖片優化在提高產品質量上也起到了舉足輕重的作用,這也就是為什麼越來越多的產品團隊更加關注這個問題。

  本文關於圖片優化的內容主要由兩部分構成:

  1. 整理總結網上關於圖片優化的一些方式方法。

  2. 自己在項目開發過程中實際遇到的問題以及用到的圖片優化方案。

  如有不足之處,歡迎大家指出並補充。

  1. 簡約而不簡單

  Win8和iOS7的出現,將互聯網行業中很多產品設計帶回到原點,或許更是另一個新的起點。Win8的Metro UI、iOS7中圖標的扁平化設計、一直崇尚簡約的豆瓣網、還有頂著時代工匠稱號的老羅所設計的錘子ROM,無一不體現著簡約的風格。

  言歸正傳,回到我們圖片優化的主題上。在產品設計和UI設計階段,除了內容圖片,其他的圖片都是起修飾的作用。也就是對於傳遞信息來說並非本質性的。所以最大的優化就是不要圖片。在進入到研發階段之前,就要確認設計,設計本身是否需要用到那麼多的圖片,還是說可以做到更簡潔!

  2. 樣式代替圖片

  Chrome,FF等浏覽器廠商為互聯網的發展做了這麼多貢獻,為什麼我們還要讓那些不兼容CSS3的浏覽器阻礙互聯網的發展呢。因此,讓我們直接使用CSS樣式代替圖片來實現修飾效果!例如:半透明、圓角、陰影、高光、漸變等。這些效果主流的浏覽器都能夠完美支持,而對於那些低端浏覽器,我們並不會完全拋棄他們,“漸進增強” 則是一個很好的解決方案。至於什麼是漸進增強,這裡不再用過多篇幅去解釋,如果感興趣可以參考CSS“漸進增強”在web制作中常見應用舉例。

  3. 選擇最合適的圖片

  我們常見的圖片格式有JPEG、GIF、PNG。

  基本上,內容圖片多為照片之類或圖片構成較復雜的情況,適用於JPEG。如網站中的Banner圖、輪播圖、大尺寸背景圖等。

  修飾圖片通常更適合用無損壓縮的PNG。而我們主要用到的PNG圖片又分為PNG-8和PNG-24兩種,PNG-8格式不支持半透明,也是IE6 兼容的圖片存儲方式。如果對圖片質量要求較高的半透明或全透明背景,保存成PNG-24更合適。有時候會遇到在IE6下應用PNG-24圖片的情況,關於 IE6下PNG Alpha透明的解決方案可以參考IE6中PNG Alpha透明。我在項目中常用的方法是AlphaImageLoader篩選器。

  GIF基本上除了GIF動畫外不要使用。

  除了這些格式之外,Chrome、新版Opera、Android 4+支持WebP格式,IE 9+、IE mobile 10+支持JPEG XR。這兩個新格式都支持無損和有損壓縮,都具有更良好的壓縮比。當然這需要為不同的浏覽器返回不同的圖片,增加了開發成本,也增加存儲成本。不過你省了流量或者相同流量下改善了圖片質量,提升了用戶體驗。這就需要根據項目需求進行取捨了。

  4. 常用的圖片優化技巧

  CSS Sprites,將同類型的圖標或按鈕等背景圖合到一張大圖中,減少頁面請求。

  Icon Font,將圖標做成字體文件。優點是圖標支持多個尺寸,兼容所有浏覽器,減少頁面請求等。美中不足的是只支持純色的icon。

  SVG,對於絕大多數圖案、圖標等,矢量圖更小,且可縮放而無需生成多套圖。現在主流浏覽器都支持SVG了,所以可放心使用!

  圖片壓縮工具,可以在圖片上線前使用壓縮工具進行壓縮,獲得更高的壓縮比。我常用的壓縮工具為Yahoo的Smush.it。

  5. 適用各種資源而不限於圖片的優化

  data url

  Base64是網絡上最常見的用於傳輸8Bit字節的編碼方式之一,可用於在HTTP環境下傳遞較長的標示信息。將圖片轉化為base64編碼格式,資源內嵌於CSS或HTML中,不必單獨請求。

  該方式的優點是:

  1. 減少了HTTP請求

  2. 避免了圖片重新上傳,還要清理緩存的問題

  不足之處是:

  1. IE6, IE7不支持該類型編碼的圖片作為背景圖

  2. 增加了CSS文件的尺寸

  3. 維護成本較高

  按照HTTP協議設置合理的緩存

  具體的緩存策略(如永久緩存 + 重命名)、部署策略(如反向代理、CDN等)這裡就不展開了。

  Responsive設計

  為了適應現在眾多分辨率和設備像素比的移動設備,要產生多套不同大小和分辨率的圖片,然後配合Media Query進行開發。這裡推薦在進行移動端頁面開發時使用SVG或Icon Font等技術。這些技術可以完美支持Retina設備。關於更多響應式方案,可以參考《響應式Web設計: HTML5和CSS3實踐》這本書或網上相關資料,這裡不再展開。

  以上為項目中常用的圖片優化技術,只有更多地關注細節,才能做出優秀的產品。今後會介紹更多文章中出現的技術細節。

copyright © 萬盛學電腦網 all rights reserved