Lassen Sie mich mit einer Frage beginnen: Wenn Sie beim Schreiben einer HTML-Seite eine JS-Datei von außen importieren möchten, wo wird dann das Skript-Tag platziert? Hat die unterschiedliche Platzierung Auswirkungen auf das Laden der Seite?
<script src="./1.js" asynchron></script> <script src="./1.js" verschieben></script> asynchron und verzögertAsynchron bedeutet, dass das Skript asynchron geladen wird, wenn das Attribut „defer“ oder „async“ im Skript-Tag aktiviert ist. Wenn die Browser-Rendering-Engine auf diese Befehlszeile stößt, beginnt sie mit dem Herunterladen des externen Skripts . Während des Herunterladens führt die Rendering-Engine die nachfolgenden Befehle direkt aus.
Der Unterschied zwischen dem asynchronen Attribut und dem Defer ist: Die blaue Linie stellt Netzwerklesevorgänge (Skriptdownloads) dar, die rote Linie stellt die Ausführung dar (beides für Skripte); die grüne Linie stellt die HTML-Analyse dar. Wenn das Attribut „defer“ verwendet wird, lädt der Browser das entsprechende Skript sofort herunter. Die Seitenverarbeitung wird während des Downloadvorgangs nicht angehalten. Das Skript wird erst ausgeführt , wenn die Dokumentanalyse abgeschlossen ist . async -Attribut, der Browser lädt das entsprechende Skript sofort herunter. Die Seitenverarbeitung wird während des Downloadvorgangs nicht angehalten. Sie wird sofort nach Abschluss des Downloads ausgeführt . Die Seitenverarbeitung wird während des Ausführungsvorgangs angehalten. Wenn keine Attribute festgelegt sind, wird die Seitenverarbeitung bei Auftreten eines Skripts fortgesetzt, nachdem das Skript heruntergeladen und ausgeführt wurde. [ Hinweis ] Async ist leistungsfähiger als Defer. Wenn dasselbe Tag beide Attribute gleichzeitig verwendet, befolgen Sie Async! ! ! Mehrere Skripte Der Unterschied zwischen asynchron und verzögert spiegelt sich nicht nur beim Herunterladen und Ausführen externer Skriptdateien wider, sondern auch im Unterschied, wenn mehrere Skripte vorhanden sind: Externe Skriptdateien // ... viel JS-Code console.log('1'); 2.js-Datei: konsole.log('2'); Haupt-HTML-Datei Verwenden Sie defer : <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0"> <title>JS-Blockierung</title> <!-- defer lässt dom zuerst ausführen --> <script src="./1.js" verschieben></script> <script src="./2.js" verschieben></script> </Kopf> <Text> Wie funktioniert die <h1>js-Blockierung? </h1> <Skript> document.addEventListener('DOMContentLoaded', Funktion() { console.log('DOMContentLoaded'); }) </Skript> </body> </html> Ergebnisse der Konsolenausführung: Verwenden von async : <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0"> <title>JS-Blockierung</title> <!-- defer lässt dom zuerst ausführen --> <script src="./1.js" asynchron></script> <script src="./2.js" asynchron></script> </Kopf> <Text> Wie funktioniert die <h1>js-Blockierung? </h1> <Skript> document.addEventListener('DOMContentLoaded', Funktion() { console.log('DOMContentLoaded'); }) </Skript> </body> </html> Ergebnisse der Konsolenausführung: Aus den laufenden Ergebnissen der Konsole können wir Folgendes ersehen: async : Der zuerst abgeschlossene Download wird sofort ausgeführt ! ! ! Diese beiden Skripte dürfen nicht ausgeführt werden, bevor das Ereignis DOMContentLoaded ausgelöst wird, sie werden jedoch definitiv vor dem Ereignis window.onload ausgeführt. Darüber hinaus ist zu beachten, dass während der Ausführung des zuerst heruntergeladenen Skripts der Download anderer Skripte nicht unterbrochen wird, sondern fortgesetzt wird. [ Hinweis ] DOMContentLoaded wird ausgelöst, nachdem das Laden des DOM abgeschlossen ist, d. h. nachdem das Dokument vollständig geladen und analysiert wurde. Zusammenfassung
siehe [1] https://blog.csdn.net/mx18519142864/article/details/82021754 Dies ist das Ende dieses Artikels über die Leistungsoptimierung bei Problemen mit dem Laden und Blockieren von JavaScript-Dateien. Weitere relevante Inhalte zu Problemen mit dem Laden und Blockieren von JavaScript-Dateien finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Wo werden MySQL-Daten gespeichert?
>>: Vergleich zwischen Redis und Memcache und Auswahlmöglichkeiten
Aktivieren Sie den Remotezugriff auf MySQL MySQL-...
Dieser Artikel beschreibt den detaillierten Vorga...
Ich habe lange mit einem Problem gekämpft und das...
Ich habe verschiedene große Websites durchsucht u...
Als am häufigsten verwendetes Layoutelement spielt...
Erstens: 4 Möglichkeiten, CSS einzuführen Es gibt...
In diesem Artikel wird hauptsächlich die Implemen...
1. Firewall-Regeln festlegen Beispiel 1: Port 808...
Inhaltsverzeichnis Jenkins-Installation Installie...
Wie lädt man das JAR-Paket in ein privates Lager ...
1. Suchen Sie mysqldump.exe im MySQL-Installation...
Nach der Eingabe von yum in Linux erscheint die E...
Kürzlich habe ich festgestellt, dass die Serverze...
In diesem Artikelbeispiel wird der spezifische Co...
Vorwort Je nach Projektbedarf wird Vue-Touch verw...