最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

無阻塞加載腳本分析[全]_javascript技巧

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 20:58:02
文檔

無阻塞加載腳本分析[全]_javascript技巧

無阻塞加載腳本分析[全]_javascript技巧:由于瀏覽器是單線程的,因此腳本在載的時(shí)候會(huì)阻塞下載其它資源;雖然在現(xiàn)在瀏覽器已經(jīng)有所改善,但仍然有待改進(jìn)。 很顯然,腳本必須按順序執(zhí)行,但沒有必要按順序下載,解決方法: 1。內(nèi)嵌JS 通常由于頁面大小和緩存能帶來更多好處,因此外部文件引入JS更好
推薦度:
導(dǎo)讀無阻塞加載腳本分析[全]_javascript技巧:由于瀏覽器是單線程的,因此腳本在載的時(shí)候會(huì)阻塞下載其它資源;雖然在現(xiàn)在瀏覽器已經(jīng)有所改善,但仍然有待改進(jìn)。 很顯然,腳本必須按順序執(zhí)行,但沒有必要按順序下載,解決方法: 1。內(nèi)嵌JS 通常由于頁面大小和緩存能帶來更多好處,因此外部文件引入JS更好

由于瀏覽器是單線程的,因此腳本在載的時(shí)候會(huì)阻塞下載其它資源;雖然在現(xiàn)在瀏覽器已經(jīng)有所改善,但仍然有待改進(jìn)。
很顯然,腳本必須按順序執(zhí)行,但沒有必要按順序下載,解決方法:
1。內(nèi)嵌JS
通常由于頁面大小和緩存能帶來更多好處,因此外部文件引入JS更好一些;
在少數(shù)情況下,比如首頁、少量JS情況下尚可接受。
2。XHR Eval
通過XMLHttpRequest從服務(wù)器端獲取腳本。
主要缺陷是,通過XHR獲取的腳本必須部署在和主頁面相同的域中。
代碼如下:
Ajax.get("test.js", function (xhr) {
eval(xhr.responseText);
});

3。XHR注入
使用XHR獲取腳本并創(chuàng)建script標(biāo)簽。
同樣,通過XHR獲取的腳本必須部署在和主頁面相同的域中。
代碼如下:
Ajax.get('test.js', function (xhr) {
injectscript(xhr.responseText);
});
function injectscript(scriptText) {
var s = document.createElement('script');
s.text = scriptText;
document.getElementsByTagName('head')[0].appendChild(s);
}

4。Script in Iframe
將需要的腳本放入到一個(gè)頁面中,然后通過iframe來加載該頁面。
缺點(diǎn)是iframe本身的開銷比較大,另外瀏覽器安全機(jī)制不允許iframe中的js訪問跨域的父頁面,反之亦然。
5。Script DOM Element
JS動(dòng)態(tài)創(chuàng)建script DOM元素并設(shè)置其src屬性。
代碼如下:
var scriptElem = document.createElement('script');
scriptElem.src = 'http://domain.com/test.js';
document.ge('head')[0].appendChild(scriptElem);

6。Script Defer
給script標(biāo)簽添加defer屬性。
缺點(diǎn)是只有IE和一些新瀏覽器支持。
代碼如下:

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

無阻塞加載腳本分析[全]_javascript技巧

無阻塞加載腳本分析[全]_javascript技巧:由于瀏覽器是單線程的,因此腳本在載的時(shí)候會(huì)阻塞下載其它資源;雖然在現(xiàn)在瀏覽器已經(jīng)有所改善,但仍然有待改進(jìn)。 很顯然,腳本必須按順序執(zhí)行,但沒有必要按順序下載,解決方法: 1。內(nèi)嵌JS 通常由于頁面大小和緩存能帶來更多好處,因此外部文件引入JS更好
推薦度:
標(biāo)簽: 加載 js 腳本
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top