一直在找這方面的資料,只是之前在鬼哥那邊看到,網頁中使用DataURI會

mobify最近做了一系列的測試,測試結果表明平均下來,DataURI要比簡單的外鏈資源要慢6倍。

base64

DataURI的方法最初被設計用於在email中嵌入資源,但是後來被介紹可以用於減少HTTP請求,從而提升網站效能。但是其實事實上卻有些雞肋:

  • 圖片等資源轉換為DataURI所用的Base64編碼之後,檔案大小增加了好多(通常50%-300%),如果伺服器端啟用Gzip壓縮,圖片實際大小則基本可以達到轉碼之前的大小;
  • 瀏覽器需要將Base 64解碼以後才能渲染,而解碼過程需要消耗不少的記憶體和CPU;
  • 無論你是否將使用了這些Base64的檔案(HTML,CSS等)快取到本地,瀏覽器在渲染相關頁面的時候,都要重新解碼,消耗CPU和記憶體。

從上圖可以看出,Android低端手機的效能差的驚人,iOS 6和Android 4.2的高階機看起來還可以但是DataURI也要慢好幾倍。所以其實總體來說,DataURI的方法要慎用,對於Webapp,更推薦更有效的利用各種快取技術。

文中資料來自於Mobify,更多測試細節也可以前往訪問了解