HTML <script> defer 屬性

定義和用法

defer 屬性是一個布爾屬性。

如果設置了 defer 屬性,則指定腳本在解析頁面的同時并行下載,并在頁面解析完成后執行。

注意:defer 屬性僅適用于外部腳本(只有存在 src 屬性 時才應使用)。

注意:可以通過多種方式執行外部腳本:

  • 如果已設置 async:腳本會在解析頁面的同時并行下載,并在可用時立即執行(在解析完成之前)
  • 如果已設置 defer(而未設置 async):腳本會在解析頁面的同時并行下載,并在頁面解析完成后執行
  • 如果既沒有 async 也沒有 defer:腳本被立即下載并執行,阻塞頁面解析,直到腳本執行完成

實例

腳本將與頁面解析并行下載,并在頁面完成解析后執行:

<script src="demo_defer.js" defer></script>

親自試一試

語法

<script defer>

推遲腳本的執行

您可以用 async 和 defer 屬性對腳本的執行方式加以控制。defer 屬性告訴瀏覽器要等頁面載入和解析完畢之后才能執行腳本。

瀏覽器在遇到帶有 defer 屬性的 script 元素時,會將腳本的加載和執行推遲到 HTML 文檔中的所有元素都已得到解析之后。

這與將 script 移到頁面末尾的結果是一樣的:

<body>
... ...
... ...
... ...
<script src="demo.js"></script>
</body>

瀏覽器支持

表中的數字注明了首個完全支持該屬性的瀏覽器版本。

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
8.0 10.0 3.5 5.0 15.0