• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Externes JavaScript

Status
Für weitere Antworten geschlossen.

sadry

Neues Mitglied
Hallo,
hab mal eine Frage - normalerweise füge ich das JavaScript immer in der HTML Datei ein - wozu bräuchte ich denn ein externes JavaScript, weiß das jemand (naklar, weiß das einer - ihr seid ja leider alle so viel schlauer als ich - aber steter Tropfen und so...)

Danke für Eure Hilfe
sadry
 
Um den Code in mehreren HTML-Seiten verfügbar zu haben, ohne es in jede Datei erneut zu schreiben.
Der gleiche Grund, warum man externe Styelsheets macht.
Und warum es bei Programmiersprachen Libraries oder Module gibt.
 
Ein weiterer Vorteil bei externen Javascript und Stylesheet Dateien ist außerdem auch, dass diese vom Browser beim ersten Ansehen der Seite zwischengespeichert werden können und dann beim nächsten Aufruf der Seite aus dem Browser Cache (Zwischenspeicher) geladen werden.
Dadurch müssen viel weniger Daten aus dem Netz geladen werden und die Seite ist viel schneller fertig geladen.
Das macht sich vor allem bei großen externen Javascript Bibliotheken bemerkbar, wie z.B. PrototypeJS oder ExtJS, die gerne mal über 100 Kilobyte groß sein können.
 
Hallo,
hab mal eine Frage - normalerweise füge ich das JavaScript immer in der HTML Datei ein - wozu bräuchte ich denn ein externes JavaScript, weiß das jemand (naklar, weiß das einer - ihr seid ja leider alle so viel schlauer als ich - aber steter Tropfen und so...)

Danke für Eure Hilfe
sadry

Hallo sadry,

die Ladezeit wurde ja schon erwähnt, da kann man aber noch ergänzen, dass Du mit
einem externen JavaScript eine andere Lade-Reihenfolge hast. D.h. Du kannst zuerst
die Seite laden (und anzeigen) und erst danach das Script. M.E. für Besucher mit
langsamer Verbindung ein großer Vorteil.

Grüße
Bernhard
 
Das stimmt nicht.

Code:
<script src="foo.js"></script>
Das wird in dem Moment angefordert, wenn der Parser zu dieser Stelle kommt. Egal ob extern oder inline. Sonst wäre kein document.write() möglich. Das bremst selbstverständlich die Seite aus, wenn das Script gar nicht direkt etwas am HTML ändert.

Aus diesem Grund gibt es defer:
Code:
<script src="foo.js" defer="defer"></script>
Das sagt dem Parser, dass er das Script später laden kann und weiter mit dem Parsen der HTML-Seite machen kann. Das Script wird dann ausgeführt, wenn das DOM fertig geladen ist. DOMContentLoaded wird somit (fast) überflüssig.

Problem dabei ist: der Internet Explorer kann das schon ewig. Firefox wird es z.B., als erster, erst ab 3.1 können: https://bugzilla.mozilla.org/show_bug.cgi?id=28293

Nachtrag:
defer="defer" gibt es seit HTML 4.01, ist also ein Standard-Attribut.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben