淺析js預(yù)加載/延遲加載
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ì)被載入,直到用戶(hù)將頁(yè)面滾動(dòng)到它們所在的位置才加載,這樣對(duì)于含有很多 圖片的比較長(zhǎng)的網(wǎng)頁(yè)來(lái)說(shuō),可以加載的更快,并且還能節(jié)省服務(wù)器帶寬。jQuery插件中也有插件來(lái)實(shí)現(xiàn)該功能。
在騰訊的QQ空間和微博中就采用這樣技術(shù)實(shí)現(xiàn),在大訪問(wèn)量的網(wǎng)站,這樣就相對(duì)可以減少服務(wù)器的壓力,在用戶(hù)訪問(wèn)到所見(jiàn)區(qū)域和下面內(nèi)容時(shí)候才去請(qǐng)求。而不是傳統(tǒng)的一次把整個(gè)頁(yè)面下載過(guò)來(lái),在下載過(guò)程中存在著用戶(hù)等待內(nèi)容呈現(xiàn)。
IE中使用new Image().src 去預(yù)加載文件。
其他瀏覽器使用動(dòng)態(tài)插入document.createElement('object')標(biāo)簽來(lái)完成加載。
說(shuō)明:
1. new Image().src 之所以不能在ff中使用是因?yàn)閒f對(duì)圖片實(shí)現(xiàn)了一套單獨(dú)的緩存。 同時(shí)safari和chrome看起來(lái)也沒(méi)有被緩存。
2. 動(dòng)態(tài)插入object 標(biāo)簽需要插入到非head部分,以觸發(fā)加載。
3. ie7 ie8 也可以通過(guò)一些代碼使用動(dòng)態(tài)object加載文件。
相關(guān)文章
JavaScript?setTimeout和setInterval的用法與區(qū)別詳解
Javascript的setTimeOut和setInterval函數(shù)應(yīng)用非常廣泛,它們都用來(lái)處理延時(shí)和定時(shí)任務(wù),下面這篇文章主要給大家介紹了關(guān)于JavaScript?setTimeout和setInterval的用法與區(qū)別,需要的朋友可以參考下2022-04-04
BootStrap實(shí)現(xiàn)帶有增刪改查功能的表格(DEMO詳解)
這篇文章主要介紹了BootStrap實(shí)現(xiàn)帶有增刪改查功能的表格,表格封裝了3個(gè)版本,接下來(lái)通過(guò)本文給大家展示下樣式及代碼,對(duì)bootstrap增刪改查相關(guān)知識(shí)感興趣的朋友一起通過(guò)本文學(xué)習(xí)吧2016-10-10
淺談javascript語(yǔ)法和定時(shí)函數(shù)
初學(xué)者可能對(duì)Javascript的定時(shí)器有誤解,認(rèn)為它們是線程,其實(shí)Javascript是運(yùn)行于單線程中的,而定時(shí)器僅僅是計(jì)劃在未來(lái)的某個(gè)時(shí)間執(zhí)行,而具體的執(zhí)行時(shí)間是不能保證的,因?yàn)樵陧?yè)面的生命周期中,不同的時(shí)間可能有其它代碼在控制Javascript的里進(jìn)程。2015-05-05
普通web整合quartz跑定時(shí)任務(wù)的示例
這篇文章主要介紹了普通web整合quartz跑定時(shí)任務(wù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
uni-app微信小程序登錄授權(quán)的實(shí)現(xiàn)
這篇文章主要介紹了uni-app微信小程序登錄授權(quán)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
JS限制Textarea文本域字符個(gè)數(shù)的具體實(shí)現(xiàn)
這篇文章介紹了JS限制Textarea文本域字符個(gè)數(shù)的具體實(shí)現(xiàn),有需要的朋友可以參考一下2013-08-08
js+html5實(shí)現(xiàn)復(fù)制文字按鈕
這篇文章主要為大家詳細(xì)介紹了js+html5實(shí)現(xiàn)復(fù)制文字按鈕,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07

