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