Estoy usando RequireJS y necesito inicializar algo en DOM listo. Ahora, RequireJS proporciona el domReady
complemento , pero ya tenemos jQuery $(document).ready()
, que está disponible para mí ya que he requerido jQuery.
Entonces tengo dos opciones:
Utilice el
domReady
complemento:require(['domReady'], function (domReady) { domReady(function () { // Do my stuff here... }); });
Utilizar
$(document).ready()
:$(document).ready(function() { // Do my stuff here... });
¿Cuál debería elegir y por qué?
Ambas opciones parecen funcionar como se esperaba. No confío en el de jQuery porque RequireJS está haciendo su magia; es decir, dado que RequireJS agregará scripts dinámicamente, me preocupa que DOM ready pueda ocurrir antes de que se carguen todos los scripts solicitados dinámicamente. Considerando que, RequireJS agregará una carga en JS adicional solo para domReady
cuando ya tenga jQuery requerido.
Preguntas
- ¿Por qué RequireJS proporciona un
domReady
complemento cuando podemos tener jQuery$(document).ready();
? No veo ninguna ventaja en incluir otra dependencia. - Si es solo para satisfacer una necesidad, ¿por qué no proporcionar uno para AJAX entre navegadores?
Hasta donde yo sé, un módulo que requiera domReady
no se obtendrá ni se ejecutará después de que el documento esté listo, y usted podría hacer lo mismo requiriendo jQuery también:
require(['jQuery'], function ($) {
$(document).ready(function () {
// Do my stuff here...
});
});
Para ser más claro en mi pregunta: ¿cuál es la diferencia entre requerir domReady
o jQuery
?
script
van sus etiquetas o está escribiendo una biblioteca / complemento que otras personas usarán (y así ellos tienen el control de la ubicación de las script
etiquetas en el marcado)?
I am not confident in jquery's dom ready because requirejs is doing its magic.
Dado que, require encapsula jquery en un ámbito local limitado. Ese no es el punto. (en lo que respecta a la pregunta).
I am not confident in jquery's dom ready
Quiero marcarlo como ofensivo:p