Sobes.tech
Middle

Was ist der Unterschied zwischen den Tags <script>, <script async> und <script defer>?

sobes.tech KI

Antwort von AI

Der Standard-<script>-Tag stoppt das HTML-Parsing, lädt das Skript und führt es aus, dann wird das Parsing fortgesetzt.

<script async> lädt das Skript asynchron, während das HTML-Parsing fortgesetzt wird. Das Skript wird sofort nach dem Laden ausgeführt. Die Ausführungsreihenfolge ist nicht garantiert.

<script defer> lädt das Skript asynchron, während das HTML-Parsing fortgesetzt wird. Das Skript wird nur nach Abschluss des HTML-Parsings ausgeführt, aber vor dem DOMContentLoaded-Event. Die Reihenfolge der Ausführung von defer-Skripten bleibt entsprechend ihrer Reihenfolge im HTML.

Vergleichstabelle:

Attribut HTML-Parsing während des Ladens des Skripts Skriptausführung Reihenfolge der Ausführung bewahren
Kein Pause Direkt nach dem Laden Ja
async Wird fortgesetzt Direkt nach dem Laden (kann Parsing unterbrechen) Nein
defer Wird fortgesetzt Nach Abschluss des HTML-Parsings Ja

Beispiel:

<!-- Normales Skript - blockiert das Parsing -->
<script src="script1.js"></script>

<!-- Asynchrones Skript - blockiert das Parsing nicht, wird sofort nach dem Laden ausgeführt -->
<script src="script2.js" async></script>

<!-- Verzögertes Skript - blockiert das Parsing nicht, wird nach dem HTML-Parsing ausgeführt -->
<script src="script3.js" defer></script>
<script src="script4.js" defer></script> <!-- Wird nach script3.js ausgeführt -->