成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

淺談async、defer以普通script加載的區(qū)別

瀏覽:209日期:2022-06-09 18:32:11

如果用一張圖片詮釋這幾種script加載的特點,應(yīng)該是這樣的:

結(jié)合圖片我們可以將三種方式的特點總結(jié)如下:

  • <script> : 當(dāng)HTML解析過程中遇到script標(biāo)簽時,瀏覽器中斷HTML解析,隨即下載script文件,完成后立即執(zhí)行script,執(zhí)行完成后再繼續(xù)HTML解析
  • <script async> : 當(dāng)HTML解析過程中遇到script標(biāo)簽時,不會中斷HTML解析,同時并行下載script文件,下載完成后中斷HTML解析執(zhí)行script,執(zhí)行完成后再繼續(xù)HTML解析(script的執(zhí)行順序不一定按照script標(biāo)簽的出現(xiàn)順序,而是取決于script下載完成的順序)
  • <script defer> : 當(dāng)HTML解析過程中遇到script標(biāo)簽時,不會中斷HTML解析,同時并行下載script文件,直到HTML解析完成再執(zhí)行script(script的執(zhí)行順序與script標(biāo)簽出現(xiàn)順序一致

我們可以通過一個小項目驗證上面的結(jié)論。

index.html:

<!DOCTYPE html><html lang="en"><head>  <script>    console.time("timer");    console.timeLog("timer", "--- Start parsing HTML");    document.addEventListener("DOMContentLoaded", function () {      console.timeLog("timer", "--- Document loaded");    });  </script></head><body>  <p>    Lorem ipsum dolor sit amet consectetur adipisicing elit. Explicabo harum velit itaque assumenda, quibusdam    obcaecati suscipit quasi odit accusantium soluta qui, debitis quae iusto? Nobis ratione ut nesciunt a minima.  </p>  <!-- 此處省略500行重復(fù)元素 -->  <script>console.timeLog("timer", "--- Start loading 1.js")</script>  <script src="./1.js"></script>  <script>console.timeLog("timer", "--- Start loading 2.js")</script>  <script src="./2.js"></script>  <script>console.timeLog("timer", "--- Start loading 3.js")</script>  <script src="./3.js"></script>  <!-- 此處省略1500行重復(fù)元素 -->   <p>    Lorem ipsum dolor sit amet consectetur adipisicing elit. Explicabo harum velit itaque assumenda, quibusdam    obcaecati suscipit quasi odit accusantium soluta qui, debitis quae iusto? Nobis ratione ut nesciunt a minima.  </p>  <script>    console.timeLog("timer", "--- End parsing HTML")  </script></body></html>

1.js:

const text1 = `  // 超長文本`text1.split(" ");console.timeLog("timer", "--- 1.js excuted");

2.js:

const text2 = `  // 超長文本`text2.split(" ");console.timeLog("timer", "--- 2.js excuted");

3.js:

const text3 = `  // 超長文本`text3.split(" ");console.timeLog("timer", "--- 3.js excuted");

我們分別使用普通、async和defer的方式加載1.js、2.js、3.js,觀察控制臺的打印結(jié)果:

普通:

結(jié)論:script出現(xiàn)會中斷HTML加載,且script會順序的加載、執(zhí)行,所有script執(zhí)行完成后再解析HTML。

Async:

結(jié)論:HTML解析和script下載同步進(jìn)行,script執(zhí)行會中斷HTML解析;script執(zhí)行順序和tag出現(xiàn)順序不一定相同;script可能會在document loaded之后執(zhí)行。

Defer:

結(jié)論:HTML解析和script下載同步進(jìn)行;script會在HTML解析完成后document loaded之前執(zhí)行,且執(zhí)行順序和tag出現(xiàn)順序一致。

由以上實驗可知:如果使用普通方式時通常建議將script放到<body>的最后,以免阻塞HTML解析影響網(wǎng)頁打開速度。而defer相對于async更具優(yōu)勢,不會阻塞HTML解析且script的執(zhí)行順序可以預(yù)測,有一些需要預(yù)先下載執(zhí)行的script可以使用defer的方式在<head>中引用。

到此這篇關(guān)于淺談async、defer以普通script加載的區(qū)別的文章就介紹到這了,更多相關(guān)async、defer以及普通script加載內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: JavaScript
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
一级日本不卡的影视| 久久久噜噜噜久久中文字幕色伊伊| 在线视频一区二区三区| 欧美激情一区不卡| 国产精品夜夜爽| 久久先锋资源| 欧美国产精品中文字幕| 国产精品一卡二| 国产传媒一区在线| 欧美性感一区二区三区| 亚洲一区二区av电影| 欧美日韩亚洲在线| xnxx国产精品| 国产精品99久久久久久宅男| 欧美影院一区二区| 日韩电影一区二区三区四区| 一区一区视频| 久久精品国产色蜜蜜麻豆| 波多野结衣一区二区三区| 欧美视频在线观看一区| 一二三四区精品视频| 97久久超碰国产精品| 日韩一级免费观看| 国产美女精品在线| 5566中文字幕一区二区电影| 激情小说亚洲一区| 久久久久中文| 日韩精品久久久久久| 色噜噜狠狠一区二区三区果冻| 日韩综合一区二区| 色美美综合视频| 日韩电影在线观看网站| 91久久国产最好的精华液| 久久精品99国产精品| 欧美老女人在线| 国产成人av一区二区三区在线观看| 777欧美精品| 国产精品一区二区无线| 欧美xxxxx裸体时装秀| 99精品视频一区二区三区| 久久久影视传媒| 亚洲欧美一区二区原创| 亚洲色图视频网站| 免费在线成人| 另类小说视频一区二区| 欧美一区二区美女| 91影视在线播放| 国产精品理伦片| 亚洲永久视频| 国产综合成人久久大片91| 欧美mv和日韩mv的网站| 欧美日韩在线大尺度| 亚洲精品视频观看| 久久综合伊人77777麻豆| 黄色成人免费在线| 久久免费偷拍视频| 亚洲黄网站黄| 免费欧美日韩国产三级电影| 欧美日韩中文字幕精品| zzijzzij亚洲日本少妇熟睡| 国产精品久久久久毛片软件| 亚洲一区二区三区在线观看视频| 麻豆国产精品777777在线| 欧美一区二区三区日韩视频| 欧美成人69| 亚洲国产一区二区a毛片| 欧美在线观看视频在线| 粉嫩aⅴ一区二区三区四区五区| 久久精品这里都是精品| 亚洲先锋成人| 日韩综合小视频| 制服丝袜亚洲色图| 欧美日韩国产三区| 亚洲国产精品一区二区久久| 欧美日韩一级二级三级| 99视频有精品| 一区二区三区四区乱视频| 欧美亚洲综合在线| 欧美高清视频一区二区三区在线观看| 亚洲精品中文字幕在线观看| 色婷婷久久99综合精品jk白丝| 国产精品伊人色| 国产精品美女一区二区三区| 色婷婷亚洲精品| 不卡一区二区中文字幕| 亚洲男女一区二区三区| 欧美色视频在线| 欧美日韩系列| 日本在线播放一区二区三区| 精品成人佐山爱一区二区| 亚洲精品看片| 精品一区二区三区欧美| 国产精品情趣视频| 色哟哟一区二区在线观看| 盗摄精品av一区二区三区| 国产精品99免费看| 在线一区二区三区四区五区| 国产乱子伦一区二区三区国色天香| 国产三级精品视频| 性伦欧美刺激片在线观看| 国产精品一品二品| 一区二区在线观看免费视频播放| 欧美在线不卡一区| 午夜精品影院| 日日噜噜夜夜狠狠视频欧美人 | 日韩一级片在线观看| 欧美成人综合网站| 久久xxxx| 色综合夜色一区| 国产成人在线视频网站| 精品视频一区三区九区| 午夜精品剧场| 国产精品亚洲а∨天堂免在线| 亚洲精品久久久蜜桃| 欧美一级欧美三级在线观看| 国产伦精品一区二区三区视频黑人| 国产成人精品aa毛片| 亚洲国产aⅴ天堂久久| 久久在线免费观看| 久久精品二区三区| 欧美成人一品| 免费看日韩精品| 最新日韩av在线| 日韩免费成人网| 久久精品国产综合精品| 色综合天天性综合| 久久国产福利国产秒拍| 一区二区国产视频| 26uuu国产一区二区三区| 欧美亚洲精品一区| 日韩一级免费| 99re热这里只有精品视频| 久久不见久久见中文字幕免费| 亚洲人成网站色在线观看| 精品国产成人系列| 精品污污网站免费看| 亚洲一区自拍| 国产精品a久久久久| 国产福利一区二区三区视频在线| 亚洲综合色视频| 中文字幕成人网| 欧美α欧美αv大片| 欧美视频精品在线观看| 欧美专区18| 亚洲成色精品| 欧美承认网站| 成人av先锋影音| 国产一区二区中文字幕| 日本成人中文字幕在线视频| 一区二区三区高清在线| 欧美国产精品劲爆| 久久综合久久久久88| 91精品国产综合久久精品| 在线免费观看成人短视频| 国产精品普通话对白| 激情偷拍久久| 欧美一区二区视频在线| 成人午夜免费视频| 韩国欧美一区二区| 麻豆视频观看网址久久| 天使萌一区二区三区免费观看| 亚洲一区欧美一区| 亚洲色欲色欲www在线观看| 国产丝袜欧美中文另类| 日韩一卡二卡三卡四卡| 欧美日韩国产123区| 在线免费av一区| 色综合 综合色| 久久久久国产精品一区二区| 999亚洲国产精| 亚洲高清精品中出| 一区免费视频| 在线日韩av永久免费观看| 欧美精品二区| 欧美一区二区三区久久精品| 色综合久久中文综合久久牛| 97久久久精品综合88久久| 99r国产精品| 91猫先生在线| 欧美精品一区二区视频| 欧美精品偷拍| 国产在线精品二区| 今天的高清视频免费播放成人| 国内激情久久| 亚洲区一区二| 中日韩男男gay无套| 国产精品毛片| 性刺激综合网| 欧美天堂一区二区三区| 欧美精品乱码久久久久久| 日韩亚洲欧美综合| 精品国产三级电影在线观看| 久久久99免费| 国产精品久久毛片| 亚洲免费三区一区二区| 亚洲一级二级三级| 欧美aa在线视频| 九九国产精品视频| 国内精品视频666| 丁香婷婷综合激情五月色|