Pre loader 預(yù)加載一般有兩種常用方式:xhr和動(dòng)態(tài)插入節(jié)點(diǎn)的方式。動(dòng)態(tài)插入節(jié)點(diǎn)是最為簡(jiǎn)單也最為廣泛的一種異步加載方式,然后使用動(dòng)態(tài)插入節(jié)點(diǎn)方法加載的文件都會(huì) 在加載后立即執(zhí)行,javascript的執(zhí)行一方面會(huì)占用瀏覽器js執(zhí)行進(jìn)程,另一方面也可能改變頁(yè)面結(jié)構(gòu),而css 的執(zhí)行更有可能讓整個(gè)頁(yè)面變化。xhr方式雖然不會(huì)執(zhí)行腳本,但是由于同域的限制
Lazy loader方式在一些圖片非常多的網(wǎng)站中非常有用,在瀏覽器可視區(qū)域外的圖片不會(huì)被載入,直到用戶將頁(yè)面滾動(dòng)到它們所在的位置才加載,這樣對(duì)于含有很多 圖片的比較長(zhǎng)的網(wǎng)頁(yè)來說,可以加載的更快,并且還能節(jié)省服務(wù)器帶寬。jQuery插件中也有插件來實(shí)現(xiàn)該功能。
在騰訊的QQ空間和微博中就采用這樣技術(shù)實(shí)現(xiàn),在大訪問量的網(wǎng)站,這樣就相對(duì)可以減少服務(wù)器的壓力,在用戶訪問到所見區(qū)域和下面內(nèi)容時(shí)候才去請(qǐng)求。而不是傳統(tǒng)的一次把整個(gè)頁(yè)面下載過來,在下載過程中存在著用戶等待內(nèi)容呈現(xiàn)。
IE中使用new Image().src 去預(yù)加載文件。
其他瀏覽器使用動(dòng)態(tài)插入document.createElement('object')標(biāo)簽來完成加載。
說明:
1. new Image().src 之所以不能在ff中使用是因?yàn)閒f對(duì)圖片實(shí)現(xiàn)了一套單獨(dú)的緩存。 同時(shí)safari和chrome看起來也沒有被緩存。
2. 動(dòng)態(tài)插入object 標(biāo)簽需要插入到非head部分,以觸發(fā)加載。
3. ie7 ie8 也可以通過一些代碼使用動(dòng)態(tài)object加載文件。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注