base64圖片講解

什么是base64編碼

圖片的base64編碼就是可以將一張圖片數(shù)據(jù)編碼成一串字符串,使用該字符串代替圖像地址url。

使用base64圖片的優(yōu)點(diǎn)

在前端頁面中常見的base64圖片的引入方式有

//在css中使用base64圖片
.header {
    background-image: url(data:image/png;base64,iVBORw0...);
}
//在html中使用base64圖片
<img src="data:image/gif;base64,base64,/9j/4AAQSkZJRgABAQEASABIAAD/4gIcSUNDX1BST0ZJTEUAAQE.....>

使用base64圖片的優(yōu)點(diǎn)有一下幾種
1、減少http請求次數(shù)
2、采用base64的圖片隨著頁面一起下載,因此不會(huì)存在跨域請求的問題
3、沒有圖片更新要上傳圖片,因此不會(huì)造成清理圖片緩存的問題

使用base64圖片的缺點(diǎn)

1、增加css文件的大小
2、瀏覽器兼容性
3、解析css的時(shí)間增長

base64圖片與cssprites技術(shù)

cssprites技術(shù)就是將多個(gè)圖片合成一個(gè)大的圖片,將多次圖片請求合成一張大圖的請求,以此來達(dá)到減少http請求的次數(shù)。

使用cssprites合成一張大圖的優(yōu)缺點(diǎn)

  • 頁面具有多種風(fēng)格,需要換膚功能,可使用CssSprites
  • 圖片不隨意改動(dòng)
  • 使用時(shí)無需重復(fù)圖形的內(nèi)容
  • 沒有base64編碼成本,降低圖片更新的維護(hù)難度
    -不會(huì)增加css文件體積

使用base64直接把圖片編碼成字符串寫入css文件:

  • 無額外請求
  • 對(duì)于極小或者及簡單圖片
    -可像獨(dú)立圖片一樣使用,比如背景圖片重復(fù)使用等
  • 沒有跨域問題,無需考慮緩存,文件頭或者cookies問題

對(duì)于base64圖片常見誤區(qū)

base64雖有優(yōu)點(diǎn),但是其缺點(diǎn)也很明顯,在使用上存在一些明顯的缺陷
1、使用base64不代表性能優(yōu)化,使用base64減少了http請求,但是增加了css文件的體積,css文件體積增大意味著CRP的阻塞

CRP(Critical Rendering Path,關(guān)鍵渲染路徑):當(dāng)瀏覽器從服務(wù)器接>收到一個(gè)HTML頁面的請求時(shí),到屏幕上渲染出來要經(jīng)過很多個(gè)步驟。瀏>覽器完成這一系列的運(yùn)行,或者說渲染出來我們常常稱之為“關(guān)鍵渲染路
徑”。

三級(jí)

圖片不會(huì)導(dǎo)致關(guān)鍵渲染路徑的阻塞,而轉(zhuǎn)換為base64后大大增加了css文件的體積,css文件的體積直接影響渲染,導(dǎo)致空白屏幕時(shí)間增長,html和css會(huì)阻塞渲染,而圖片不會(huì)阻塞渲染

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 圖片處理在前端工作中可謂占據(jù)了很重要的一壁江山。而圖片的 base64 編碼可能相對(duì)一些人而言比較陌生,本文不是從...
    小偉_be27閱讀 16,852評(píng)論 0 7
  • 圍繞前端的性能多如牛毛,涉及到方方面面,以我我們將圍繞PC瀏覽器和移動(dòng)端瀏覽器的優(yōu)化策略進(jìn)行羅列注意,是羅列不是展...
    流動(dòng)碼文閱讀 741評(píng)論 0 0
  • 前言 前端的工作并不僅僅是實(shí)現(xiàn)「視覺&交互稿」,想要開發(fā)一個(gè)高性能易維護(hù)的「完美」站點(diǎn)并未易事,針對(duì)前端的性能優(yōu)化...
    木羽zwwill閱讀 716評(píng)論 0 4
  • 一、PC端優(yōu)化策略 主要包括網(wǎng)絡(luò)加載類、頁面渲染類、CSS優(yōu)化類、JavaScript執(zhí)行類、緩存類、圖片類、架構(gòu)...
    puxiaotaoc閱讀 24,892評(píng)論 6 56
  • 網(wǎng)絡(luò)加載類 1. 減少HTTP資源請求次數(shù) 在前端頁面中,通常建議盡可能合并靜態(tài)資源圖片、JavaScript和C...
    oWSQo閱讀 598評(píng)論 0 1

友情鏈接更多精彩內(nèi)容