ฉันใช้ 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