$(document).ready กับ $(window).load จะใช้อะไรดี?

ใน jQuery มีวิธีสั่งให้สคริปท์ทำงานเมื่อหน้าเว็บโหลดเสร็จอยู่สองวิธี คือ

$(document).ready();

และ

$(window).load();

ซึ่งสองวิธีนี้มันมีจุดต่างกันเล็กน้อยครับ

$(document).ready();

สำหรับ $(document).ready(); นั้น จะเป็นการสั่งให้โค๊ดทำงานเมื่อเบราเซอร์โหลด HTML Document ทั้งเว็บเสร็จเรียบร้อย และ DOM อยู่ในสถานะพร้อมใช้งาน จึงจะสั่งให้ JavaScript ทำงานครับ (คือมันไม่รอให้อะไรอย่างอื่น เช่นไฟล์ภาพบนหน้าเว็บโหลดเสร็จ ก็จะสั่งให้สคริปท์ทำงานเลย)

วิธีนี้จะมีปัญหากับเบราเซอร์บางตัว ไม่สิ ตัวเดียวเลย ก็คือ Google Chrome ครับ อย่างล่าสุดที่ผมเจอนี่คือสคริปท์จะทำงานก่อนที่ CSS จะประมวลผลหมด

$(window).load();

เมื่อวิธีแรกมีปัญหา เราก็เปลี่ยนมาใช้วิธีนี้ครับ $(window).load(); จะเป็นการสั่งให้สคริปท์ทำงานเมื่อหน้าเว็บทั้งหน้าโหลดเสร็จเรียบร้อยครับ คือสคริปท์จะรอให้ทุกอย่างบนหน้าเว็บโหลดเสร็จเรียบร้อย ทั้งภาพ วัตถุ หรือเฟรมต่างๆ แล้วจึงค่อยให้สคริปท์ทำงานครับ

Read More