Я использую 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