Я использую 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
?
I am not confident in jquery's dom ready
Я хочу отметить это как оскорбление:p