<script src="script.js"></script>
瀏覽器
沒有 defer
或 async
,瀏覽器會當即加載並執行指定的腳本,「當即」指的是在渲染該 script
標籤之下的文檔元素以前,也就是說不等待後續載入的文檔元素,讀到就加載並執行。網絡
<script async src="script.js"></script>
異步
有 async
,加載和渲染後續文檔元素的過程將和 script.js
的加載與執行並行進行(異步)。async
<script defer src="myscript.js"></script>
code
有 defer
,加載後續文檔元素的過程將和 script.js
的加載並行進行(異步),可是 script.js
的執行要在全部元素解析完成以後,DOMContentLoaded
事件觸發以前完成。事件
藍色線表明網絡讀取,紅色線表明執行時間,這倆都是針對腳本的;綠色線表明 HTML 解析。ip
此圖告訴咱們如下幾個要點:文檔