Sto usando RequireJS e ho bisogno di inizializzare qualcosa su DOM pronto. Ora, RequireJS fornisce il domReadyplug-in , ma abbiamo già jQuery $(document).ready(), che è disponibile per me poiché ho richiesto jQuery.
Quindi ho due opzioni:
Usa il
domReadyplugin:require(['domReady'], function (domReady) { domReady(function () { // Do my stuff here... }); });Usa
$(document).ready():$(document).ready(function() { // Do my stuff here... });
Quale dovrei scegliere e perché?
Entrambe le opzioni sembrano funzionare come previsto. Non sono fiducioso in quello di jQuery perché RequireJS sta facendo la sua magia; cioè, poiché RequireJS aggiungerà dinamicamente gli script, sono preoccupato che il DOM ready possa verificarsi prima che tutti gli script richiesti dinamicamente vengano caricati. Considerando che, RequireJS aggiungerà un peso su JS aggiuntivo solo per domReadyquando ho già richiesto jQuery.
Domande
- Perché RequireJS fornisce un
domReadyplugin quando possiamo avere jQuery$(document).ready();? Non vedo alcun vantaggio nell'includere un'altra dipendenza. - Se è solo per soddisfare un bisogno, perché non fornirne uno per AJAX cross-browser?
Per quanto ne so, un modulo che richiede domReadynon verrà recuperato o eseguito dopo che il documento è pronto, e potresti fare lo stesso anche richiedendo jQuery:
require(['jQuery'], function ($) {
$(document).ready(function () {
// Do my stuff here...
});
});
Per essere più chiari sulla mia domanda: qual è la differenza tra richiedere domReadyo jQuery?
scriptvanno i tuoi tag o stai scrivendo una libreria / plug-in che altre persone useranno (e quindi hanno il controllo della posizione dei scripttag nel markup)?
I am not confident in jquery's dom ready because requirejs is doing its magic.Poiché, require incapsula jquery in un ambito locale limitato. Non è questo il punto. (per quanto riguarda la domanda).
I am not confident in jquery's dom readyVoglio contrassegnarlo come offensivo:p