Ich verwende RequireJS und muss etwas auf DOM bereit initialisieren. Jetzt stellt RequireJS das domReadyPlugin zur Verfügung , aber wir haben bereits jQuery's $(document).ready(), das mir zur Verfügung steht, da ich jQuery benötigt habe.
Ich habe also zwei Möglichkeiten:
Verwenden Sie das
domReadyPlugin:require(['domReady'], function (domReady) { domReady(function () { // Do my stuff here... }); });Verwendung
$(document).ready():$(document).ready(function() { // Do my stuff here... });
Welches soll ich wählen und warum?
Beide Optionen scheinen wie erwartet zu funktionieren. Ich bin nicht zuversichtlich in die jQuery, weil RequireJS seine Magie tut; Das heißt, da RequireJS Skripte dynamisch hinzufügt, mache ich mir Sorgen, dass DOM-fähig sein könnte, bevor alle dynamisch angeforderten Skripte geladen werden. RequireJS wird zusätzliche JS nur dann belasten, domReadywenn ich bereits jQuery benötigt habe.
Fragen
- Warum stellt RequireJS ein
domReadyPlugin zur Verfügung, wenn wir jQuery's haben können$(document).ready();? Ich sehe keinen Vorteil darin, eine andere Abhängigkeit aufzunehmen. - Wenn es nur darum geht, einen Bedarf zu decken, warum nicht einen für Cross-Browser-AJAX bereitstellen?
Soweit ich weiß, wird ein Modul, das benötigt domReadywird, nicht abgerufen oder ausgeführt, nachdem das Dokument fertig ist, und Sie können das Gleiche auch mit jQuery tun:
require(['jQuery'], function ($) {
$(document).ready(function () {
// Do my stuff here...
});
});
Um meine Frage klarer zu formulieren: Was ist der Unterschied zwischen dem Erfordernis domReadyoder jQuery?
scriptTags gehen, oder schreiben Sie eine Bibliothek / ein Plug-In, die / das andere Benutzer verwenden (und damit die Position der scriptTags im Markup kontrollieren )?
I am not confident in jquery's dom ready because requirejs is doing its magic.Da ist erforderlich, Kapselung in begrenztem lokalen Bereich zu kapseln. Das ist nicht der Punkt. (soweit es die Frage betrifft).
I am not confident in jquery's dom readyIch möchte es als anstößig markieren:p