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.
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>
.
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.
Tags und Links javascript