[譯] async 與 defer
讓我們從定義沒有任何屬性的 <script>
開始。HTML 檔案會被解析直到命中指令碼檔案,那個時候,HTML 將會停止解析並且將會發送一個請求去獲取這個檔案(如果他是外鏈),在 HTML 繼續解析之前,指令碼將會被執行。

<script async>
async
在 HTML 解析的同時下載檔案,而且當檔案完成下載之後,將會暫停 HTML 解析來執行檔案。

<script defer>
defer
在 HTML 解析的同時下載檔案, 並且在 HTML 解析完成後才執行它, defer
的多指令碼也保證了他們以它們出現在文件上的順序被順序執行。

我什麼時候應該用什麼?
通常,您希望儘可能使用 async
, 然後是 defer
, 再是沒有這些屬性的指令碼。這裡有一些常用的規則去遵守。
async defer async