當(dāng)然蕉陋,最佳實(shí)踐還是把所有腳本放在
</body>
前面
當(dāng)瀏覽器碰到 script 腳本的時(shí)候:
<script src="script.js"></script>
沒(méi)有 defer
或 async
菩浙,瀏覽器會(huì)立即加載并執(zhí)行指定的腳本篙螟,“立即”指的是在渲染該 script 標(biāo)簽之下的文檔元素之前我纪,也就是說(shuō)不等待后續(xù)載入的文檔元素悬赏,讀到就加載并執(zhí)行蒸矛。
<script async src="script.js"></script>
有async
莉钙,加載和渲染后續(xù)文檔元素的過(guò)程將和 script.js 的加載與執(zhí)行并行進(jìn)行(異步)。
<script defer src="myscript.js"></script>
有 defer
磁玉,加載后續(xù)文檔元素的過(guò)程將和 script.js 的加載并行進(jìn)行(異步)停忿,但是 script.js 的執(zhí)行要在所有元素解析完成之后,DOMContentLoaded 事件觸發(fā)之前完成蚊伞。