J'utilise RequireJS et j'ai besoin d'initialiser quelque chose sur DOM prêt. Maintenant, RequireJS fournit le domReady
plugin , mais nous avons déjà jQuery $(document).ready()
, qui m'est disponible puisque j'ai besoin de jQuery.
J'ai donc deux options:
Utilisez le
domReady
plugin:require(['domReady'], function (domReady) { domReady(function () { // Do my stuff here... }); });
Utilisez
$(document).ready()
:$(document).ready(function() { // Do my stuff here... });
Lequel devrais-je choisir et pourquoi?
Les deux options semblent fonctionner comme prévu. Je n'ai pas confiance en celui de jQuery car RequireJS fait sa magie; c'est-à-dire que RequireJS ajoutera dynamiquement des scripts, je crains que DOM ready ne se produise avant que tous les scripts demandés dynamiquement ne soient chargés. Considérant que, RequireJS ajoutera une charge sur JS supplémentaire juste pour domReady
quand jQuery est déjà requis.
Des questions
- Pourquoi RequireJS fournit-il un
domReady
plugin alors que nous pouvons avoir jQuery$(document).ready();
? Je ne vois aucun avantage à inclure une autre dépendance. - Si c'est juste pour répondre à un besoin, pourquoi ne pas en fournir un pour AJAX inter-navigateur?
Pour autant que je sache, un module qui nécessite domReady
ne sera pas récupéré ou exécuté une fois le document prêt, et vous pouvez faire la même chose en demandant jQuery:
require(['jQuery'], function ($) {
$(document).ready(function () {
// Do my stuff here...
});
});
Pour être plus clair sur ma question: quelle est la différence entre exiger domReady
ou jQuery
?
script
vont vos balises, ou écrivez-vous une bibliothèque / un plug-in que d'autres personnes utiliseront (et qui contrôlent donc l'emplacement des script
balises dans le balisage)?
I am not confident in jquery's dom ready because requirejs is doing its magic.
Depuis, require encapsule jquery dans une portée locale limitée. Ce n'est pas la question. (en ce qui concerne la question).
I am not confident in jquery's dom ready
Je veux le marquer comme offensif:p