Heim > Artikel > Web-Frontend > Was ist in Javascript aufschieben?
defer teilt dem Browser mit, dass das Skriptsegment Code enthält, der nicht sofort ausgeführt werden muss, und wird in Verbindung mit dem SRC-Attribut verwendet. Es kann auch dazu führen, dass diese Skripte im Hintergrund und der Inhalt im Vordergrund heruntergeladen werden wird dem Benutzer normalerweise mit der Syntax „b6abb9f95e1e7d03e71e2a9f71e7c034 js code2cacc6d41bbb37262a98f745aa00fbf0“ angezeigt.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.
Viele Leute beherrschen bereits die Verwendung von Javascript, aber sie wissen möglicherweise nicht, wofür es verwendet wird, wenn sie sehen, dass viele Leute auf ein solches Problem gestoßen sind und js direkt ausführen müssen, das keine DOM-Objekte manipuliert Fehler, dass das Objekt nicht gefunden werden kann, liegt daran, dass die Seite noch nicht geladen wurde und das js-Operationsobjekt noch heruntergeladen wird. Viele Menschen wissen jedoch nicht, dass das Hinzufügen des Defer-Tags dieses Problem leicht lösen kann. Die Funktion von defer in
<script src="../CGI-bin/delscript.js" defer></script>
besteht darin, das Skript auszuführen, nachdem das Dokument geladen wurde, um das Problem zu vermeiden, dass das Objekt nicht gefunden wird – ein kleines Problem
<button id="myButton" onclick="alert('ok')">test</button> <script> myButton.click(); </script> <script> myButton.click(); </script> <button id="myButton" onclick="alert('ok')">test</button> <script defer> function document.body.onload() { alert(document.body.offsetHeight); } </script>
plus defer bedeutet, dass es danach ausgeführt wird Die Seite wird vollständig geladen, was window onload entspricht, aber in der Anwendung flexibler ist als window.onload!
defer ist ein „unbesungener Held“ in der Leistungsfähigkeit von Skriptprogrammen. Es teilt dem Browser mit, dass das Skriptsegment Code enthält, der nicht sofort ausgeführt werden muss, und kann in Verbindung mit dem SRC-Attribut auch dazu führen, dass diese Skripte im Hintergrund heruntergeladen werden und der Inhalt im Vordergrund angezeigt wird dem Benutzer normal angezeigt.
--Aber bevor Sie das Skript ausführen, nachdem das Dokument geladen wurde
Bitte beachten Sie zwei Punkte:
1 Rufen Sie den Befehl „document.write“ nicht in einem Skriptsegment vom Typ „Defer“ auf, da „document.write“ eine direkte Ausgabe erzeugt Wirkung.
2. Fügen Sie außerdem keine globalen Variablen oder Funktionen ein, die vom Skript zur sofortigen Ausführung verwendet werden sollen.
Eine übliche Methode zur Leistungsoptimierung besteht darin, das „defer“-Attribut im 03c6714b8e3ee3238fc596020c4901e1-Tag festzulegen, wenn das Skript nicht sofort ausgeführt werden muss. (Das unmittelbare Skript ist nicht in einem Funktionsblock enthalten, daher wird es während des Ladevorgangs ausgeführt.) Nach dem Festlegen des „defer“-Attributs muss IE nicht darauf warten, dass das Skript geladen und ausgeführt wird. Auf diese Weise wird die Seite schneller geladen. Im Allgemeinen bedeutet dies auch, dass unmittelbare Skripte am besten in einem Funktionsblock platziert werden und die Funktion im Onload-Handler des Dokuments oder Body-Objekts abwickeln. Diese Eigenschaft ist nützlich, wenn Skripte vorhanden sind, die auf Benutzeraktionen basieren, z. B. auf das Klicken auf eine Schaltfläche oder das Bewegen der Maus in einen bestimmten Bereich. Wenn jedoch einige Skripts während oder nach dem Laden der Seite ausgeführt werden müssen, sind die Vorteile der Verwendung des Defer-Attributs nicht groß.
Das Defer-Attribut im Skript ist standardmäßig falsch. Gemäß der Beschreibung im DHTML-Programmierhandbuch wird das Defer-Attribut wie folgt geschrieben:
Die Verwendung des Attributs zur Entwurfszeit kann die Download-Leistung einer Seite verbessern, da der Browser das Skript nicht analysieren und ausführen muss und mit dem Herunterladen fortfahren kann und stattdessen die Seite analysieren.
Mit anderen Worten: Wenn Sie beim Schreiben eines Skripts das Defer-Attribut hinzufügen, muss der Browser es beim Herunterladen des Skripts nicht sofort verarbeiten, sondern lädt die Seite weiter herunter und analysiert sie, was zu einer Erhöhung führt Downloads.
Solche Situationen gibt es viele. Wenn Sie beispielsweise viele JavaScript-Variablen definieren oder viele Skripte in die Referenzdatei (.inc) schreiben, die verarbeitet werden müssen, können Sie diesen Skripten auch das Defer-Attribut hinzufügen, was definitiv zur Verbesserung der Leistung beiträgt .
Ein Beispiel lautet wie folgt:
<script language="javascript" defer> var object = new Object(); .... </script>
Da das Defer-Attribut standardmäßig falsch ist, entspricht die explizite Deklaration des Defer-Attributs hier
<script language="javascript" defer>
<script language="javascript" defer=true>
Nach der Deklaration des Defer-Attributs müssen Sie feststellen, ob andere Variablen darauf verweisen Variablen im Skriptblock zurückstellen, sonst kommt es zu einem Skriptfehler.
【Empfohlenes Lernen: Javascript-Tutorial für Fortgeschrittene】
Das obige ist der detaillierte Inhalt vonWas ist in Javascript aufschieben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!