Es gibt gute und schlechte Gründe dafür.
GOOD) Wenn das Skript für die Erstellung Ihres Seiten-DOMs nicht entscheidend ist, sollten Sie es so spät wie möglich durchführen, wie es Jim Puls vorschlägt, normalerweise ganz unten auf der Seite im BODY-Wurzelknoten. Das ist gut, weil es dem XHTML ermöglicht, sofort zu rendern, was einen psychologischen Effekt erzeugt, dass die Seite "schneller lädt". In Wirklichkeit wird es mit der gleichen Geschwindigkeit geladen, mit der Ausnahme, dass der Browser keine CPU-Zyklen ausführt, um JS herunterzuladen, zu interpretieren und auszuführen, während der Benutzer auf ein weißes Browserfenster starrt.
BAD) Skript-Tags werden normalerweise heruntergeladen und in der Reihenfolge interpretiert, in der sie eingeschlossen sind. Dies bedeutet, dass Sie sorgfältig die Reihenfolge verwalten müssen, in der sie enthalten sind. Da sie seriell (einzeln) geladen werden, zahlen Sie hohe Kosten für jede weitere Datei, die Sie referenzieren, da der Browser eine Verbindung aufbauen, den Cache überprüfen, herunterladen muss usw. Tricks wie IEs "DEFFER" sind kein Standard. Aus diesem Grund würde ich sehr empfehlen, dass Sie Ihr Javascript in einer einzigen Datei packen, wenn Sie von der Entwicklung zur Produktion gehen, so dass Benutzer nicht mehrere Verbindungen seriell herstellen müssen. Stellen Sie außerdem sicher, dass die gzip-Komprimierung aktiviert ist.
GOOD) Es gibt eine Möglichkeit, Skripte mit AJAX zu laden - Sie rufen Ihren Server auf, fragen nach dem JS und lösen ein Ereignis aus, wenn die Datei geladen wird. Sie können dann eval (oder eine sicherere Variante) aufrufen, die ihre Symbole in den Geltungsbereich bringt. Dies ermöglicht parallele Downloads von Skripten.
GOOD & BAD) In IE müssen Sie vermeiden, den DOM-Baum zu manipulieren, bevor das DOM vollständig geladen wurde. Schauen Sie sich das 'dom: loaded' Event an.