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

Javascript-Definition im Header oder Body?

DieMaus

Neues Mitglied
Hi zusammen,

wo genau definiert man ein Javascript, im Header oder im Body?

Laut SELFHTML ist das im Header und meine IDE meckert, dass das nach neuer Norm nicht so gehen würde.
 
Die Antwort kann man pauschal nicht allgemein so gelten lassen. Die Frage wäre nämlich was für eine Einbindung von JavaScript Du meinst und was für eine "neue Norm" dein Programm meint? Eine "neue Norm" bzgl. JavaScript gibt es imho nicht. Sowohl in HTML4, XHTML wie auch HTML5 wird jedes JavaScript identisch eingebunden. Es kann im <head> wie auch vor dem schließenden body-Tag passieren. Welches der richtige Weg ist hängt von dem verwendeten JavaScript ab (welches Du hier nicht genannt hast).
 
Dass JS aus Performance-Gründen nach dem Aufbau des DOM und damit vor dem schließenden Body-Tag eingebunden wird, hat sich eingebürgert. Welchen Grund sollte es geben, davon abzuweichen?
 
Es hat sich keinesfalls allgemein "eingebürgert" JavaScript auf die Art einzubinden. Es ist, wie schon gesagt, anwendungsabhängig.

Ein gutes Beispiel dafür findest Du z.B. hier:
http://molily.de/js/einbindung.html

Da wird u.a. beschrieben in welchem Fall JavaScript eher im <head> oder eher in den <body> geschrieben werden soll. Genau so wird es nach meiner Erfahrung (nicht unbedingt gleich "eingebürgert") auch von den meisten Webseiten gemacht. Auf html.de z.B. gibt es JavaScript sowohl im <head> als auch im <body>. Im <body> sind es, wie in oben stehendem Link beschrieben, vor allem globale Variablen, teils mit Zugriff auf Elemente im DOM, die hier definiert werden. Im <head> definierte und direkt ausgeführte Scripte behindern das Laden der Seite, deshalb sollte man z.B. zu ladende externe Scripte ohne direkte Ausführung auch dort unterbringen. Und selbst wenn dort direkt ausgeführte Funktionen stehen, kann man in HTML5 auch das async-Attribut verwenden um das Blockieren des Ladens durch das JavaScript dort zu umgehen (siehe https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script).

Übrigens: wenn Du jedes JavaScript vor dem schließenden </body> einbindest behinderst Du vermutlich auch die korrekte Zählung von Zugriffen über Google Analytics (falls Du das verwendest), siehe: https://support.google.com/analytics/answer/1008080?hl=de - gleiches gilt imho auch bei Verwendung von Piwik.

Daher war meine Nachfrage oben um was für ein JavaScript es sich konkret handelt. Ohne diese Info kann man diese Frage nicht so pauschal beantworten wie Du es gemacht hast.
 
Zurück
Oben