แนวคิดทั่วไปคือว่าไฟไหม้ window.onloadเมื่อหน้าต่างของเอกสารคือเตรียมตัวให้พร้อมสำหรับการนำเสนอและdocument.onload ไฟไหม้เมื่อต้นไม้ DOM (สร้างจากรหัสที่มาร์กอัปภายในเอกสาร) จะเสร็จสมบูรณ์
จะเป็นการดีที่สมัครรับเหตุการณ์ DOM ต้นไม้ช่วยให้ Offscreen-กิจวัตรผ่าน Javascript ที่เกิดขึ้นเกือบจะไม่มีภาระของ CPU ในทางตรงกันข้ามwindow.onloadอาจใช้เวลาสักครู่ในการเริ่มต้นเมื่อทรัพยากรภายนอกหลายอย่างยังไม่ได้รับการร้องขอแยกวิเคราะห์และโหลด
►สถานการณ์ทดสอบ:
ในการสังเกตความแตกต่างและวิธีที่เบราว์เซอร์ที่คุณเลือกใช้เครื่องมือจัดการเหตุการณ์ดังกล่าวเพียงแค่ใส่รหัสต่อไปนี้ใน<body>แท็ก - - ของเอกสาร
<script language="javascript">
window.tdiff = []; fred = function(a,b){return a-b;};
window.document.onload = function(e){
console.log("document.onload", e, Date.now() ,window.tdiff,
(window.tdiff[0] = Date.now()) && window.tdiff.reduce(fred) );
}
window.onload = function(e){
console.log("window.onload", e, Date.now() ,window.tdiff,
(window.tdiff[1] = Date.now()) && window.tdiff.reduce(fred) );
}
</script>
►Result:
นี่คือพฤติกรรมที่เกิดขึ้นซึ่งสามารถมองเห็นได้สำหรับ Chrome v20 (และอาจเป็นเบราว์เซอร์ล่าสุด)
- ไม่มี
document.onloadเหตุการณ์
onloadไฟไหม้สองครั้งเมื่อประกาศภายใน<body>ครั้งเดียวเมื่อประกาศภายใน<head>(ที่เหตุการณ์นั้นทำหน้าที่เป็นdocument.onload)
- การนับและการแสดงขึ้นอยู่กับสถานะของตัวนับอนุญาตให้เลียนแบบพฤติกรรมของเหตุการณ์ทั้งสอง
- หรือประกาศ
window.onloadตัวจัดการเหตุการณ์ภายในขอบเขตของ<head>องค์ประกอบHTML
►ตัวอย่างโครงการ:
รหัสข้างต้นนำมาจากcodebase ของโครงการนี้ ( index.htmlและkeyboarder.js)
สำหรับรายการตัวจัดการเหตุการณ์ของวัตถุหน้าต่างโปรดดูเอกสารประกอบของ MDN
windowเหตุการณ์: และonloadDOMContentLoadedตัวอย่างการใช้งาน:,window.addEventListener('DOMContentLoaded', callback). ราวกลางปี 2562 เข้ากันได้กับเบราว์เซอร์หลักทั้งหมด ----- developer.mozilla.org/en-US/docs/Web/API/Window/… ------ developer.mozilla.org/en-US/docs/Web/API/Window/load_event