Chris: Wann wird eine externe JavaScript-Datei nachgeladen?

Beitrag lesen

Hallo!

Ich kenne mich (noch) nicht sonderlich mit JavaScript aus. In einem Buch bin ich nun auf einen Quellcode gestoßen, der so ähnlich ausschaut:

JavaScript-Datei datei.js:

ausgabe = 'Hallo!';

HTML-Datei:
...
<script type="text/javascript" src="datei.js"></script>
</head>

<body>
<script type="text/javascript">
<!--
document.write(ausgabe);
//-->
...

Angeblich ist nun nicht definiert, wann die externe JavaScript-Datei nachgeladen wird. D.h. dass die Variable ausgabe zum Zeitpunkt der Ausgabe der document.write-Funktion möglicherweise noch nicht definiert sein könnte. Das Resultat wäre dann 1. eine JavaScript-Fehlermeldung, 2. dass nichts ausgegeben wird.

Um ehrlich zu sein, habe ich über dieses mögliche Problem bisher noch nirgends etwas gelesen. Ich hatte stets angenommen, dass die JavaScript-Datei in einem solchen Fall quasi erst einmal komplett in das HTML-Dokument eingebunden wird, bevor es nach dem </script> weitergeht.

In der 4. Auflage von David Flanagans >JavaScript - Das umfassende Referenzwerk< habe ich auf S. 219 folgenden Abschnitt gefunden:

Wie oben gesagt, werden über das src-Attribut eingebundene Scripten in der gleichen Reihenfolge ausgeführt wie Scripten, die direkt in der HTML-Datei stehen. Das bedeutet, dass sowohl der HTML-Parser als auch der JavaScript-Interpreter anhalten und warten müssen, bis die externe JavaScript-Datei geladen wurde.<

Demnach ist die Aussage in dem anderen Buch doch falsch? Das hat mich doch etwas verunsichert.