werden externe Javascript-Dateien sequentiell oder parallel geladen?

7

Wenn ich mehrere Skript-Tags in meiner Seite habe wie:

%Vor%

kann ich mich auf die Tatsache verlassen, dass Code aus den vorherigen bereits verfügbar ist, wenn die letzteren geladen sind?

    
clamp 17.11.2011, 09:50
quelle

4 Antworten

5

Im Allgemeinen werden Skripts nacheinander heruntergeladen (siehe diese Seite ):

  

Weil JavaScript-Code den Inhalt und das Layout eines Webs verändern kann   Seite verzögert der Browser das Rendern von Inhalten, die einem Skript folgen   Tag, bis das Skript heruntergeladen, analysiert und ausgeführt wurde.   Vor allem für Round-Trip-Zeiten blockieren jedoch viele Browser   das Herunterladen von Ressourcen [wie Stylesheets, Bilder und andere Skripts]   im Dokument nach Skripten referenziert, bis diese Skripte sind   heruntergeladen und ausgeführt.

    
Peter O. 17.11.2011, 09:54
quelle
7

Sie können (über das Netzwerk) parallel geladen werden, aber sie werden nacheinander ausgewertet.

Also, Sie können sich auf die Reihenfolge verlassen.

    
Thilo 17.11.2011 09:54
quelle
5

Kurz: Ja:

Ohne die Eigenschaften defer oder async innerhalb des Skript-Tags anzugeben, besagt die Spezifikation, dass ein Browser diese Dateien sequenziell (synchron) laden muss.

Mit anderen Worten, ein einfaches Skript-Tag, das ein Browser findet, muss

erhalten
  • geladen
  • ausgeführt
  • (Blockieren eines anderen Render- / Ausführungsprozesses während des obigen Vorgangs)

Während ein "moderner" Browser wahrscheinlich noch versucht, diesen Prozess zu optimieren, müssen diese Schritte (zumindest prozesshaft) angewendet werden. Das ist der Grund, warum Sie Script-Tags ohne weitere Angaben immer am unteren Rand Ihres <body> -Tags platzieren sollten. Selbst der DOM-Renderprozess stoppt beim Laden / Ausführen von Skripten.

Um dies zu vermeiden, können Sie eine Eigenschaft defer oder async (nur HTML5) in diesen Skript-Tags angeben, z. B.

%Vor%

sagt dem Browser, dass es ein Skript ist, das ausgeführt werden soll, nachdem das Dokument analysiert wurde.

Siehe Ссылка

    
jAndy 17.11.2011 09:53
quelle
3

Sie werden parallel geladen, aber sie laufen nur einmal, wenn jede Datei geladen wurde. Also die Antwort ist ja, Sie können sich auf die Tatsache verlassen.

    
Moe Sweet 17.11.2011 09:53
quelle

Tags und Links