Я використовую 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