Używam RequireJS i muszę zainicjować coś na DOM gotowy. Teraz RequireJS dostarcza domReady
wtyczkę , ale mamy już jQuery $(document).ready()
, które jest dla mnie dostępne, ponieważ potrzebowałem jQuery.
Mam więc dwie możliwości:
Użyj
domReady
wtyczki:require(['domReady'], function (domReady) { domReady(function () { // Do my stuff here... }); });
Zastosowanie
$(document).ready()
:$(document).ready(function() { // Do my stuff here... });
Którą wybrać i dlaczego?
Wydaje się, że obie opcje działają zgodnie z oczekiwaniami. Nie mam pewności co do jQuery, ponieważ RequireJS robi swoje; to znaczy, ponieważ RequireJS dynamicznie doda skrypty, obawiam się, że DOM gotowy może wystąpić przed załadowaniem wszystkich dynamicznie żądanych skryptów. Natomiast RequireJS spowoduje obciążenie dodatkowego JS tylko domReady
wtedy, gdy mam już wymagane jQuery.
pytania
- Dlaczego RequireJS zapewnia
domReady
wtyczkę, skoro możemy mieć jQuery$(document).ready();
? Nie widzę żadnej korzyści z włączenia innej zależności. - Jeśli jest to tylko zaspokojenie potrzeb, dlaczego nie zapewnić takiego rozwiązania dla AJAX w różnych przeglądarkach?
O ile wiem, moduł, który wymaga domReady
, nie zostanie pobrany ani wykonany po przygotowaniu dokumentu, a Ty możesz zrobić to samo wymagając jQuery:
require(['jQuery'], function ($) {
$(document).ready(function () {
// Do my stuff here...
});
});
Aby wyjaśnić moje pytanie: jaka jest różnica między wymaganiem domReady
a jQuery
?
script
trafiają Twoje tagi, czy piszesz bibliotekę / wtyczkę, której będą używać inne osoby (a więc to oni kontrolują lokalizację script
tagów w znacznikach)?
I am not confident in jquery's dom ready because requirejs is doing its magic.
Ponieważ, require to hermetyzacja jquery w ograniczonym zakresie lokalnym. Nie o to chodzi. (jeśli chodzi o pytanie).
I am not confident in jquery's dom ready
chcę oznaczyć to jako obraźliwe:p