Wo plazieren Sie JavaScript-Funktionen: head? Karosserie? oder nach / html?

8

Ich bin verwirrt, wo JavaScript-Funktionen platziert werden:

Wann sollten sie in den Kopf gelegt werden? Wenn innerhalb des Körpers inline Und wenn nach dem schließenden HTML-Tag?

Danke

    
Doug Null 01.03.2012, 16:37
quelle

3 Antworten

9

Die Regeln sind schnell und locker dabei, es gibt keinen richtigen oder falschen Weg nur besser und weniger - besser. (Nun, nachdem die </html> ist falsch)

Im Allgemeinen kann Javascript in head des Dokuments das Rendern der Seite blockieren, bis die Datei in einigen Browsern geladen ist * hust * IE * hust *. Dies liegt an einer Grenze von gleichzeitigen Verbindungen. Manche Leute setzen sie also vor das schließende html -Tag. Sie können eine Bibliothek verwenden, um das JavaScript asynchron zu laden, um diese Blockierung zu vermeiden.

Wenn Sie eine Bibliothek verwenden oder prüfen, ob das DOM vor dem Ausführen von Code geladen wird, gibt es wirklich keine Probleme, wo es platziert ist. Aber wenn Sie das nicht tun, ist es wahrscheinlich besser, es am Ende zu setzen.

    
JKirchartz 01.03.2012, 16:41
quelle
1

Javascript kann immer sicher im Kopf platziert werden, um die Funktionalität für die gesamte Seite verfügbar zu machen. Beachten Sie, dass dies das Laden des restlichen Dokuments blockieren kann. Wenn Sie also sehr großes oder externes Javascript laden, möchten Sie diese möglicherweise inline am Ende des Körpers laden.

Inline platziertes Javascript wird verfügbar, wenn es ausgeführt wird. Dadurch können Sie JS beim Laden von Seitenelementen bedingt laden.

Javascript sollte immer in <head> oder <body> platziert werden, niemals nach </html> .

    
George Cummins 01.03.2012 16:42
quelle
1

Ich stimme zu, nie gesehen (noch könnte ich empfehlen) nach HTML. Wie bereits erwähnt, ist das Blockieren das Problem. Ich gehe oft mit einem Skript-Verweis im Kopf zu yepnope (einem asynchronen js-Ladeprogramm und einem Test-Tid-Bit (jetzt in modernisizr )), und ein kleiner Block von Inline-Js am Ende des Body-Tags, das eine Bootstrap-Js-Datei lädt.

In dieser Datei verwende ich eine weitere yepnope-Anfrage, um andere benötigte Assets asynchron zu laden und Initialisierungsmethoden zu starten.

Ich habe meinen Google Analytics-Code auch in einen letzten Yepnope-Block gesteckt, damit er auch nach dem Start der js-App geladen wird.

    
folktrash 01.03.2012 16:49
quelle

Tags und Links