### 延遲腳本 defer="defer"
這個屬性的用途是表明腳本在執行時不會影響頁面的構造。也就是說,腳本會延遲至整個頁面都解析完畢后再運行。因此,在<script>元素中設置defer屬性,相當于告訴瀏覽器立即下載,但延遲到遇到</html>標簽的時候執行。
HTML5規范要求腳本按照他們出現的順序執行,因此第一個腳本會先于第二個腳本執行,而這兩個腳本會先于DOMContentLoaded事件執行。然而,在現實中,演示腳本不一定是按照這個順序執行,也不一定在DOMContentLoad事件前執行。因此,最好只有一個延遲腳本。
### 異步腳本 async="async"
這個屬性作用與defer屬性類似,但是不能不保證異步腳本執行順序。異步腳本一定在頁面的load事件前執行,但可能會在DOMContentLoad事件前或后執行。