Я використовую 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 може виникнути перед завантаженням усіх динамічно запитуваних сценаріїв. Тоді як RequireJS додасть тягар на додатковий JS саме domReady
тоді, коли у мене вже є jQuery.
Запитання
- Чому RequireJS надає
domReady
плагін, коли ми можемо мати jQuery$(document).ready();
? Я не бачу жодної переваги, включаючи іншу залежність. - Якщо його просто для годування потреби, то чому б не надати його для крос-браузера AJAX?
Наскільки мені відомо, модуль, який вимагає domReady
, не буде витягнутий або виконаний після того, як документ буде готовий, і ви можете зробити те саме, що вимагає і jQuery:
require(['jQuery'], function ($) {
$(document).ready(function () {
// Do my stuff here...
});
});
Щоб бути більш зрозумілим у моєму питанні: в чому різниця між необхідністю domReady
або jQuery
?
script
поділяються ваші теги, чи ви пишете бібліотеку / плагін, який будуть використовувати інші люди (і значить, вони контролюють розташування script
тегів у розмітці)?
I am not confident in jquery's dom ready because requirejs is doing its magic.
Оскільки, вимагає інкапсулювання jquery в обмеженій локальній області. У цьому справа не в тому. (що стосується питання).
I am not confident in jquery's dom ready
Я хочу відзначити це образливим:p