這是很久以前的筆記,這次來整理並更新,主要是筆記載入 JavaScript 時,defer
、async
這兩個標籤的不同。
defer
<script defer src="javascript.js"></script>
瀏覽器對 DOM 的繪製不會停下,javascript.js 在背景下載,待 DOM 繪製完才執行 javascript.js。
要注意,defer
執行的時間會在 DOMContentLoaded
之前,所以 defer
的檔案如果太大,會阻塞 DOMContentLoaded
被觸發。
async
<script async src="javascript.js"></script>
瀏覽器對 DOM 的繪製不會停下,javascript.js 在背景下載。
待 javascript.js 下載完畢,DOM 繪製停下,執行 javascript.js 。
待 javascript.js 執行完畢,DOM 才接著往下繪製。
defer、async 都不寫
瀏覽器是一行一行讀下去的,defer
、async
都不寫的話,就是 DOM 繪製到引用 JavaScript 的那一行時,就停下來,先解讀完這行引用的 JS,再執行完,然後 DOM 才接著往下繪製。
Summary

Article Name
JavaScript 載入方式 defer, async
Description本篇大綱:defer、async、都不寫。這是很久以前的筆記,這次來整理並更新,主要是筆記載入 JavaScript 時,defer、async 這兩個標籤的不同。
August
Augustus
Let's Write
Let's Write
https://letswritetw.github.io/letswritetw/dist/img/logo_512.png
