ใช้แอตทริบิวต์ defer เพื่อรันสคริปต์เมื่อหน้าเว็บจบการแยกวิเคราะห์ (parsing) ใน HTML
ขั้นตอน
ขั้นแรก สร้างไฟล์ JS ชื่อ new.js:
function sayHello() {
alert("Hello World")
}
ตัวอย่าง
เพิ่มโค้ด HTML และรันสคริปต์ข้างต้น:
<html>
<head>
<script src="new.js" defer></script>
</head>
<body>
<p>นี่คือข้อความสาธิต</p>
</body>
</html>
ความแตกต่าง async vs defer:
| คุณสมบัติ | async | defer |
|---|---|---|
| ดาวน์โหลด | ขนานกับ HTML parsing | ขนานกับ HTML parsing |
| รันสคริปต์ | ทันทีที่ดาวน์โหลดเสร็จ (ก่อน parsing จบ) | หลัง HTML parsing จบ (ก่อน DOMContentLoaded) |
| ลำดับการรัน | ไม่รับประกัน (ขึ้นอยู่กับโหลดเสร็จก่อน) | ตามลำดับใน HTML |
| เหมาะสำหรับ | สคริปต์อิสระ (analytics, ads) | สคริปต์ที่ต้องใช้ DOM, jQuery, libraries |