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