ฉันใช้ RequireJS และจำเป็นต้องเตรียมใช้งานบางอย่างบน DOM ให้พร้อม ตอนนี้ RequireJS มีdomReady
ปลั๊กอินแต่เรามี jQuery อยู่แล้ว$(document).ready()
ซึ่งมีให้สำหรับฉันเนื่องจากฉันต้องการ jQuery
ดังนั้นฉันจึงมีสองทางเลือก:
ใช้
domReady
ปลั๊กอิน:require(['domReady'], function (domReady) { domReady(function () { // Do my stuff here... }); });
ใช้
$(document).ready()
:$(document).ready(function() { // Do my stuff here... });
ฉันควรเลือกแบบใดและเพราะเหตุใด
ตัวเลือกทั้งสองดูเหมือนจะทำงานตามที่คาดไว้ ฉันไม่มั่นใจในตัว jQuery เพราะ RequireJS กำลังใช้เวทมนตร์ นั่นคือเนื่องจาก RequireJS จะเพิ่มสคริปต์แบบไดนามิกฉันกังวลว่า DOM ready อาจเกิดขึ้นก่อนที่สคริปต์ที่ร้องขอแบบไดนามิกทั้งหมดจะโหลด ในขณะที่ RequireJS จะเพิ่มภาระให้กับ JS เพิ่มเติมเฉพาะdomReady
เมื่อฉันมี jQuery ที่จำเป็นอยู่แล้ว
คำถาม
- ทำไม RequireJS ให้
domReady
ปลั๊กอินเมื่อเราสามารถมีของ jQuery$(document).ready();
? ฉันไม่เห็นข้อดีของการรวมการพึ่งพาอื่น ๆ - หากเป็นเพียงเพื่อตอบสนองความต้องการทำไมไม่จัดหา AJAX ข้ามเบราว์เซอร์ล่ะ
เท่าที่ฉันรู้โมดูลที่ต้องการdomReady
จะไม่ถูกดึงหรือดำเนินการหลังจากที่เอกสารพร้อมแล้วและคุณสามารถทำได้เช่นเดียวกันโดยต้องใช้ jQuery เช่นกัน:
require(['jQuery'], function ($) {
$(document).ready(function () {
// Do my stuff here...
});
});
เพื่อให้ชัดเจนยิ่งขึ้นสำหรับคำถามของฉัน: อะไรคือความแตกต่างระหว่างต้องการdomReady
หรือjQuery
?
I am not confident in jquery's dom ready
ฉันต้องการทำเครื่องหมายว่าไม่เหมาะสม:p