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
Streng genommen verfügt nginx nicht über eine Int...
Wir wissen, dass die in JS am häufigsten verwende...
Axios in Vue einfügen importiere Axios von „Axios...
Inhaltsverzeichnis 1. Flink-Übersicht 1.1 Grundle...
Szenario Eine aktuelle Anforderung ist eine h5-Se...
Notiz Beim Entwickeln einer Benutzeroberfläche fü...
Die meisten Leute kompilieren MySQL und legen es ...
So ändern Sie den Stil der von elementUI bereitge...
Bei der täglichen Arbeit müssen wir häufig Protok...
Vorwort Das Linux-System wird durch den Systemdie...
Bevor ich mit dem Haupttext beginne, werde ich ei...
Inhaltsverzeichnis Variable Datentypen Erweiterun...
Ich habe ein halbes Jahr lang nicht gebloggt, wofü...
eins. Zuerst müssen Sie es in eine Idee verpacken...
Mit dem Laufschriftelement können Sie einfache Gle...