Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> HTML

Cách thực thi script sau khi trang phân tích xong (defer) trong HTML?

Thuộc tính defer trên <script src="..."> (chỉ script ngoài) yêu cầu trình duyệt: tải song song, nhưng thực thi sau khi HTML phân tích xong, trước sự kiện DOMContentLoaded, và theo thứ tự khai báo.

So sánh async vs defer

Thuộc tính Tải Thực thi Thứ tự
Không có Chặn HTML Ngay lập tức Theo thứ tự
async Song song Ngay khi tải xong Không đảm bảo
defer Song song Sau khi HTML parse xong Đảm bảo thứ tự

Ví dụ

Tệp new.js:

function sayHello() { alert("Hello World"); }

HTML:

<html>
  <head>
    <script src="new.js" defer></script>
  </head>
  <body>
    <p>Đây là văn bản demo.</p>
  </body>
</html>

Khuyến nghị

  • Dùng defer cho script cần DOM đã sẵn sàng (thư viện UI, init app).
  • Đặt trong <head> để tải sớm nhất.
  • Script inline (không src) không hỗ trợ defer.