隨著搜索引擎的不斷進(jìn)步,外鏈在SEO優(yōu)化當(dāng)中的占的比重呈下滑趨勢(shì),而其他影響到用戶體驗(yàn)的因素慢慢走近SEOer的視野。通過(guò)百度推出的一些產(chǎn)品(百度站長(zhǎng)平臺(tái)、百度統(tǒng)計(jì))我們可以看到,網(wǎng)站的加載速度已經(jīng)成為影響排名的因素之一了。并且,網(wǎng)頁(yè)盡可能快地加載還能影響到用戶體驗(yàn),從而影響到用戶在網(wǎng)站停留的時(shí)間以及跳出率。那么,優(yōu)化網(wǎng)站的加載速度就是非常必要的了。
可能略微懂些前端的站長(zhǎng)知道,提升網(wǎng)頁(yè)加載速度的一個(gè)途徑就是減少HTTP請(qǐng)求次數(shù)。雪碧圖(CSS Sprites)就是這個(gè)思路的產(chǎn)物,將多張圖片合并到一張圖片,這樣就將多次請(qǐng)求合并為一次請(qǐng)求,達(dá)到了快速加載網(wǎng)頁(yè)的目的。但是雪碧圖的圖片合并為網(wǎng)頁(yè)的修改帶來(lái)了麻煩,想要?jiǎng)h除或者增加圖片又必須重新合并一次,這樣無(wú)疑增加了工作量降低了工作效率。那么有什么可以替代雪碧圖,同樣達(dá)到減少HTTP請(qǐng)求的目的呢?答案是:data類型圖片。
所謂"data"類型的Url格式,是在RFC2397中 提出的,目的對(duì)于一些“小”的數(shù)據(jù),可以在網(wǎng)頁(yè)中直接嵌入,而不是從外部文件載入。例如對(duì)于img這個(gè)Tag,哪怕這個(gè)圖片非常非常的小,小到只有一個(gè) 點(diǎn),也是要從另外一個(gè)外部的圖片文件例如gif文件中讀入的,如果瀏覽器實(shí)現(xiàn)了data類型的Url格式,這個(gè)文件就可以直接從頁(yè)面文件內(nèi)部讀入了。data類型的Url格式早在1998年就提出了,時(shí)至今日,F(xiàn)irfox、Opera、Safari和Konqueror這些瀏覽器都已經(jīng)支持,但是IE直到7.0版本都還沒(méi)有支持,IE不支持的東西太多了,也不差這一個(gè)。:(
data類型圖片如何生成?
將圖片數(shù)據(jù)base64編碼后,在前面加上:data:image/jpeg;base64,(其中的jpeg請(qǐng)?zhí)鎿Q成您自己的圖片類型),即可使用于CSS文件(直接將CSS文件當(dāng)中的圖片路徑替換為處理后的字符串即可,可以參考一下上面的圖片)。
data類型圖片有何優(yōu)點(diǎn)?
data類型圖片可以將CSS當(dāng)中的所有圖片都放到CSS文件當(dāng)中而不需要重新發(fā)起請(qǐng)求加載,也就是說(shuō),只需要請(qǐng)求CSS文件就夠了,減少了HTTP請(qǐng)求次數(shù)。并且增加圖片或者刪除圖片可以直接增加和刪除,不像雪碧圖需要重新合成。非常方便。
data類型圖片的缺點(diǎn)
data類型圖片有一個(gè)缺點(diǎn),就是data類型圖片相比于文件圖片的體積會(huì)大三分之一左右。因此不建議將非常大的圖片也使用data類型,針對(duì)于小圖片data類型更有優(yōu)勢(shì)。對(duì)于一些頁(yè)面簡(jiǎn)潔的博客來(lái)說(shuō),將所有圖標(biāo)轉(zhuǎn)化為data類型后放到CSS文件當(dāng)中,完全可以僅僅只加載一個(gè)CSS文件就可以搞定整個(gè)頁(yè)面的樣式了。
本文由:首發(fā),轉(zhuǎn)載請(qǐng)注明版權(quán)。并且我寫了一個(gè)PHP版的小工具,可以將普通圖片轉(zhuǎn)換為data類型的圖片:
申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!