JQuery Best Practice, mit $ (Dokument) .ready in einem IIFE?
Ich bin auf der Suche ein Stück code:
(function($) {
//other code here
$(document).ready(function() {
//other code here
});
})(jQuery);
Obwohl ich die IIFE hat die Funktionen $(document).bereit, ist dieser code richtig? oder kann ich einfach entfernen Sie die $(document).bereit und platzieren Sie den code direkt in der IIFE.
InformationsquelleAutor der Frage webmedia | 2014-07-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, IIFE nicht führen Sie den code im Dokument bereit.
1. Just-in-IIFE:
Dieser code wird sofort ausgeführt, logs "(Protokolle sofort", ohne das Dokument bereit ist.
2. Innerhalb bereit:
Läuft sofort den code und wartet für Dokument bereit und Protokolle "Protokolle nach bereit".
Erklärt dies besser zu verstehen:
Diese Protokolle "Protokolle sofort" an die Konsole sofort nachdem das Fenster geladen, aber die "Protokolle nach ready" wird protokolliert, nur, nachdem das Dokument fertig ist.
IIFE ist keine alternative für Sie bereit:
Die alternative für
$(document).ready(function(){})
ist:Update
Vom jQuery-version 3.0, die ready-handler geändert wird.
Nur die folgende form von ready-handler ist zu empfehlen.
Ready-handler ist nun asynchron.
InformationsquelleAutor der Antwort Bhojendra Nepal
$(function() {/* DOM Manipulations goes here})
(function($) {/* safely use $ here*/}(jQuery))
Und Sie können kombinieren beide Ansätze:
InformationsquelleAutor der Antwort Yury Tarabanko
IIFE
Bedürfnisse zu erstellen, die einem mehr Spielraum. Wenn Sie entfernenIIFE
und$
nicht definiert werden (dhjQuery.noConflict()
) - erhalten Sie eine Fehlermeldung.jQuery
wird überall definiert die javascript-Datei mit Bibliothek geladen wurde.Es ist also nicht jQuery best practise, es ist ein javascript-best practise.
InformationsquelleAutor der Antwort Pinal
IIFE hat die Funktionen, wenn die Ausführungskontext ( Geltungsbereich der aktuelle code, der evaluiert wird ) ist fertig. Überprüfen Sie die Artikel über Code-Organisation-Konzepte in jQuery-das beschreibt die zwei häufigsten Muster, Die Objekt-Literal und Das Modul-Musterund wie Sie zu benutzen sind.
InformationsquelleAutor der Antwort Danijel