Estou usando RequireJS e preciso inicializar algo pronto para o DOM. Agora, RequireJS fornece o domReadyplugin , 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
domReadyplugin: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 domReadyquando eu já tiver o jQuery necessário.
Questões
- Por que o RequireJS fornece um
domReadyplugin 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 domReadynã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 domReadyou jQuery?
scripttags 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 scripttags 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 readyquero marcá-lo como ofensivo:p