Kurz-Fakten

  • defer und async wirken nur bei externen Skripten mit src, nicht bei Skripten im Dokument
  • Mit defer bleibt die Reihenfolge mehrerer Skripte erhalten; mit async gewinnt, wer zuerst fertig geladen ist
  • Ein Modul (type="module") verhält sich von sich aus wie defer
  • Ohne defer oder async unterbricht der Browser den Seitenaufbau an der Stelle des script-Elements
  • Die alte Empfehlung, Skripte ans Ende des body zu setzen, löst dasselbe Problem – defer im Kopf ist die sauberere Fassung

Einordnung für die Praxis

Die Wahl zwischen den beiden Zusätzen entscheidet sich an einer Frage: Braucht das Skript ein anderes? Zählwerkzeuge und einzelne Messskripte vertragen async. Alles, was auf einer Bibliothek aufsetzt, braucht defer – sonst läuft es gelegentlich vor seiner Grundlage und bricht mit einer Fehlermeldung ab, die nur bei manchen Besuchern auftritt.

Solche Fehler sind besonders unangenehm, weil sie von der Netzgeschwindigkeit abhängen: Auf dem Entwicklungsrechner tritt der Fall nie ein.

Verwandte Begriffe