Я использую 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.
Вопросы
- Почему RequJS предоставляет плагин
domReady
, когда мы можем иметь jQuery$(document).ready();
? Я не вижу никаких преимуществ от включения другой зависимости. - Если это просто для того, чтобы удовлетворить потребность, то почему бы не предоставить один для кросс-браузерного AJAX?
Насколько мне известно, модуль, который требует domReady
, не будет извлечен или выполнен после того, как документ будет готов, и вы можете сделать то же самое, что и jQuery:
require(['jQuery'], function ($) {
$(document).ready(function () {
// Do my stuff here...
});
});
Чтобы яснее ответить на мой вопрос: какая разница между требованием domReady
или jQuery
?