LevelUp! Studio » dom ready https://blog.levelup.in.th Experience the new world. Fri, 26 May 2017 10:06:07 +0000 th hourly 1 http://wordpress.org/?v=3.8.1 Javascript: Event DOM loaded https://blog.levelup.in.th/2010/02/28/javascript-event-dom-loadedjavascript-event-dom-loaded/ https://blog.levelup.in.th/2010/02/28/javascript-event-dom-loadedjavascript-event-dom-loaded/#comments Sun, 28 Feb 2010 03:03:22 +0000 http://blog.levelup.in.th/?p=397 ปกติในการแทรก Javascript ลงไปบนหน้า HTML เราจะมีรูปแบบการเรียก script ลงไปอยู่สองแบบคือ

- แบบแรก แทรกโค้ดลงไปใน tag script เลย โดย script จะถูกเรียกเมื่อ หน้านั้นถูกโหลดไปถึงบรรทัดนั้น

- แบบที่สอง เกิดขึ้นเนื่องจากแบบแรกจะมีปัญหาหากเราต้องเรียกใช้งาน Element บน HTML เช่น Div , Form ต่างๆ เนื่องจากบางส่วนอาจจะโหลดไม่เสร็จ

เราจึงต้องการแทรก Script หลังจากทุกอย่างในหน้าทำการโหลดเรียบร้อยแล้วด้วย

<body onload=”init()”>

หรือ prototype

Event.observe(window, ‘load’, init, false);

ดูเหมือนจะเรียบร้อยดี แต่แล้วก็มีปัญหาเพิ่มขึ้นมาคือ onload มันจะทำงานหลังจาก “ทุกอย่าง” ในหน้าโหลดเสร็จจริงๆ ซึ่งหมายถึงเราต้องรอโหลดรูป / css ทั้งหมดให้ครบก่อนถึงจะเริ่มใช้งาน

ทำให้เกิดปัญหาว่า เราไม่สามารถ run javascript ได้เลยถ้ารูปโหลดไม่เสร็จ ยิ่งเวปที่มี javascript เยอะ หรือเป็น Ajax ก็ยิ่งมีปัญหาหนักคือทำอะไรไม่ได้เลยจนกว่ารูปจะโหลดเสร็จหมด

วิธีการแก้ปัญหา หากใช้ Prototype Js อยู่แล้ว

document.observe(“dom:loaded”,init);

หรือถ้าไม่ได้ใช้ก็สามารถ load script มาใช้ได้ที่

http://www.brothercake.com/site/resources/scripts/domready/

]]>
https://blog.levelup.in.th/2010/02/28/javascript-event-dom-loadedjavascript-event-dom-loaded/feed/ 0