Dieser Artikel basiert hauptsächlich auf verschiedenen Möglichkeiten, JavaScript in HTML-Seiten einzuführen, und analysiert die Ausführungsreihenfolge von JavaScript-Skripten in HTML
1. Bezüglich der blockierenden Natur der JavaScript-Skriptausführung
JavaScript weist Blockierungseigenschaften auf, wenn es im Browser analysiert und ausgeführt wird. Das heißt, wenn der JavaScript-Code ausgeführt wird, muss das Parsen, Rendern und Herunterladen anderer Ressourcen gestoppt und gewartet werden, bis das Skript abgeschlossen ist①. Dies ist unumstritten und das Verhalten ist in allen Browsern konsistent. Der Grund ist nicht schwer zu verstehen: Der Browser benötigt eine stabile DOM-Struktur, und JavaScript kann das DOM ändern (die DOM-Struktur ändern oder einen bestimmten DOM-Knoten ändern). Das Parsen der Seite wird fortgesetzt, während JavaScript ausgeführt wird. Dadurch wird der gesamte Parsing-Prozess schwer zu kontrollieren und die Wahrscheinlichkeit von Parsing-Fehlern wird ebenfalls sehr hoch.
Hier gibt es jedoch noch ein weiteres Problem, das Aufmerksamkeit erfordert. In früheren Browsern blockierte das Herunterladen von JavaScript-Dateien nicht nur das Parsen der Seite, sondern blockierte sogar andere Ressourcen auf der Seite Downloads (einschließlich anderer JavaScript-Skriptdateien, externer CSS-Dateien und externer Ressourcen wie Bilder). Ab IE8, Firefox3.5, Safari4 und Chrome2 ist das parallele Herunterladen von JavaScript zulässig. Gleichzeitig wird das Herunterladen anderer Ressourcen durch das Herunterladen von JavaScript-Dateien nicht blockiert (in älteren Versionen wird auch das Herunterladen von JavaScript-Dateien blockiert). das Herunterladen anderer Ressourcen).
Hinweis: Verschiedene Browser haben unterschiedliche Einschränkungen hinsichtlich der maximalen Anzahl von Verbindungen unter demselben Domänennamen. Die Anforderung in der HTTP1.1-Protokollspezifikation lautet, dass sie nicht höher als 2 sein darf, aber die meisten Browser bieten derzeit eine maximale Anzahl von Verbindungen . Mehr als 2, IE6/7 haben beide 2, IE8 wurde auf 6 aktualisiert, Firefox und Chrome haben auch 6. Einzelheiten finden Sie natürlich auch unter: http://. www.stevesouders. com/blog/2008/03/20/roundup-on-parallel-connections/
2. Über die Ausführungsreihenfolge des Skripts
Browser analysieren Seiten in der Reihenfolge von oben nach unten, sodass unter normalen Umständen auch die Ausführungsreihenfolge von JavaScript-Skripten von oben nach unten erfolgt, d. h. der Code, der zuerst auf der Seite erscheint, oder der Code, der zuerst eingeführt wird wird immer zuerst ausgeführt, auch wenn das parallele Herunterladen von JavaScript-Dateien erlaubt ist. Beachten Sie, dass wir hier „unter normalen Umständen“ rot markiert haben. Was ist der Grund? Wir wissen, dass es viele Möglichkeiten gibt, JavaScript-Code zu HTML hinzuzufügen, die wie folgt zusammengefasst sind (unabhängig von Modulladern wie requirejs oder seajs):
(1) Normale Einführung: das heißt, Einführung von Skriptcode oder Einführung externer Skripte über das