摘要:也就是說是亂序的,而是順序執(zhí)行,這也就決定了比較適用于百度分析或者谷歌分析這類不依賴其他腳本的庫。然而,這張圖幾乎是百度搜到的唯一答案是不嚴(yán)謹(jǐn)?shù)?,這只是規(guī)范的情況,大多數(shù)瀏覽器在實現(xiàn)的時候會作出優(yōu)化。
1. 什么鬼
今天在做一個小需的時候,忽然看到前輩一句吊炸天的代碼
臥槽,竟然同時有async和defer屬性,心想著肯定是前輩老司機的什么黑科技,兩個一塊兒肯定會發(fā)生什么神奇化學(xué)反應(yīng),于是趕緊懷著一顆崇敬的心去翻書翻文檔,先復(fù)習(xí)一下各自的定義。
2. 調(diào)查一番先看看async和defer各自的定義吧,翻開紅寶書望遠(yuǎn)鏡,是這么介紹的
2.1 defer這個屬性的用途是表明腳本在執(zhí)行時不會影響頁面的構(gòu)造。也就是說,腳本會被延遲到整個頁面都解析完畢后再運行。因此,在藍(lán)色線代表網(wǎng)絡(luò)讀取,紅色線代表執(zhí)行時間,這倆都是針對腳本的;綠色線代表 HTML 解析。
也就是說async是亂序的,而defer是順序執(zhí)行,這也就決定了async比較適用于百度分析或者谷歌分析這類不依賴其他腳本的庫。從圖中可以看到一個普通的 ul>li{這是第$個節(jié)點}*1000