Estou usando RequireJS e preciso inicializar algo pronto para o DOM. Agora, RequireJS fornece o domReady
plugin , mas já temos o jQuery $(document).ready()
, que está disponível para mim desde que solicitei o jQuery.
Portanto, tenho duas opções:
Use o
domReady
plugin:require(['domReady'], function (domReady) { domReady(function () { // Do my stuff here... }); });
Use
$(document).ready()
:$(document).ready(function() { // Do my stuff here... });
Qual devo escolher e por quê?
Ambas as opções parecem funcionar conforme o esperado. Não estou confiante no do jQuery porque o RequireJS está fazendo sua mágica; isto é, como o RequireJS adicionará scripts dinamicamente, estou preocupado que o DOM pronto possa ocorrer antes que todos os scripts solicitados dinamicamente sejam carregados. Considerando que, RequireJS irá adicionar uma carga em JS adicional apenas para domReady
quando eu já tiver o jQuery necessário.
Questões
- Por que o RequireJS fornece um
domReady
plugin quando podemos ter o jQuery$(document).ready();
? Não vejo nenhuma vantagem em incluir outra dependência. - Se for apenas para suprir uma necessidade, por que não fornecer um para AJAX para vários navegadores?
Até onde eu sei, um módulo que requer domReady
não será obtido ou executado depois que o documento estiver pronto, e você também poderia fazer o mesmo requerendo o jQuery:
require(['jQuery'], function ($) {
$(document).ready(function () {
// Do my stuff here...
});
});
Para ser mais claro na minha pergunta: qual é a diferença entre exigir domReady
ou jQuery
?
script
tags vão ou está escrevendo uma biblioteca / plug-in que outras pessoas usarão (e, portanto, elas estão no controle da localização das script
tags na marcação)?
I am not confident in jquery's dom ready because requirejs is doing its magic.
Desde então, require está encapsulando jquery em um escopo local limitado. Esse não é o ponto. (no que diz respeito à questão).
I am not confident in jquery's dom ready
quero marcá-lo como ofensivo:p