ใน HTML แอตทริบิวต์ โดยปกติ ประกอบด้วยชื่อแอตทริบิวต์และค่าแอตทริบิวต์ เช่นในตัวอย่างแองคอร์เอลิเมนต์
อย่างไรก็ตาม บางครั้ง ค่า (พฤติกรรม) ถูกสร้างไว้ในตัวชื่อแอตทริบิวต์
ตัวอย่างเช่น แอตทริบิวต์ defer ที่เราใช้แก้ไขเอลิเมนต์ HTML <script>:
<script defer src="app.js"></script>
สังเกตว่าแอตทริบิวต์ defer ไม่มีตัวดำเนินการกำหนดค่า (=) หรือค่า เพราะพฤติกรรมของมันถูกสร้างไว้ในตัว
defer เป็นที่เรียกว่าแอตทริบิวต์ boolean บูลีนใช้สำหรับประเภทข้อมูลที่มีได้เพียงสองค่า true หรือ false (หรือ enable/disable)
ลองดูรายละเอียดแอตทริบิวต์ defer ใกล้ชิดกัน
เอลิเมนต์ <script> นี้ ไม่มี แอตทริบิวต์ defer จะรันโค้ด JavaScript จากค่า src ของ app.js ทันทีที่เบราว์เซอร์โหลดมัน:
<script src="app.js"></script>
โดยค่าเริ่มต้น เอกสาร HTML ถูกแยกวิเคราะห์ (อ่าน) จากบนลงล่าง บรรทัดละบรรทัด หมายความว่าหากคุณวาง JavaScript ใดๆ ที่ด้านบนของเอกสาร มันจะรัน ก่อน ที่ส่วนที่เหลือของเอกสารจะเสร็จสิ้นการแยกวิเคราะห์
นั่นคือพฤติกรรม ค่าเริ่มต้น ของเอลิเมนต์ script
แต่วันที่คุณเพิ่ม defer ให้กับเอลิเมนต์ <script> คุณปิดใช้งานพฤติกรรมค่าเริ่มต้นนั้น:
<script defer src="app.js"></script>
ตอนนี้ โค้ด JavaScript จะไม่รันจนกว่าหน้าทั้งหมดจะโหลดเสร็จ
ในความหมายตามตัวอักษร defer หมายถึง โพสต์โพน/เลื่อน/รอ
เพื่อให้เข้าใจชัดเจน:
- ไม่มี
defer, JavaScript รันทันทีที่โหลดเสร็จ - มี
deferJavaScript รอรันจนกว่า HTML หน้าทั้งหมดจะโหลดเสร็จ
หากแอตทริบิวต์ทำให้คุณสับสน อย่ากังวล มันจะมีความหมายมากขึ้น 10 เท่าเมื่อคุณเริ่มใช้งานจริง