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
rm-Befehl Der Befehl rm wird von den meisten Benu...
Vorwort Dieser Artikel stellt hauptsächlich den r...
Fehler: Connection to blog0@localhost failed. [08...
JSON (JavaScript Object Notation, JS Object Notat...
Inhaltsverzeichnis Fügen Sie dem GitHub+Jekyll-Bl...
FEHLER 1290 (HY000) : Der MySQL-Server wird mit d...
Beschreibung: Ändern Sie den Wagenrücklauf im Text...
herunterladen Offizieller MySQL-Download, wählen ...
MySQL-Fehler: Parameterindex außerhalb des gültig...
Lassen Sie uns zunächst einige gängige Anwendungs...
Inhaltsverzeichnis Zeig mir den Code Testen Sie d...
Inhaltsverzeichnis Einführung So stellen Sie eine...
Mit CSS3 können Animationen erstellt werden, die ...
Es gibt drei Möglichkeiten, Docker-Container mite...
Inhaltsverzeichnis 1. Einleitung 2. Nutzung 3. En...