我們常用的JS腳本標籤,有兩個屬文件下載執行相關的屬性:延遲和異步

筆記一下 Hhml5 新增屬性 async 和 defer 差別

一般使用

1
2
<script src="demo.js" ></script>

整個網頁的繪製會停下,等 demo.js 下載完並執行完,網頁繪製才繼續。

defer

1
2
<script src="demo.js" defer ></script>

網頁繪製不會停下, demo.js 在背景下載,待 DOMContentLoaded 再執行 demo.js 。

async

1
2
<script src="demo.js" async ></script>

待 demo.js 下載完畢,網頁繪製停下,執行 demo.js 。

時序圖參考

JavaScript execution explained

參考