HTML <script> defer 屬性
定義和用法
defer
屬性是一個布爾屬性。
如果設置了 defer
屬性,則指定腳本在解析頁面的同時并行下載,并在頁面解析完成后執行。
注意:defer
屬性僅適用于外部腳本(只有存在 src 屬性 時才應使用)。
注意:可以通過多種方式執行外部腳本:
- 如果已設置 async:腳本會在解析頁面的同時并行下載,并在可用時立即執行(在解析完成之前)
- 如果已設置 defer(而未設置 async):腳本會在解析頁面的同時并行下載,并在頁面解析完成后執行
- 如果既沒有 async 也沒有 defer:腳本被立即下載并執行,阻塞頁面解析,直到腳本執行完成
語法
<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 |