Wird das Verknüpfen von JavaScript-Dateien im Hauptteil und nicht im Header ein Problem verursachen?


Answers

Es gibt kein Problem mit Skript-Tags im Körper. Denken Sie daran, dass die Seite von oben nach unten geparst wird, also müssen Skripte enthalten sein, bevor sie verwendet werden.

Question

Das versuche ich zu tun

<script type="text/javascript" src="resources/application.js"></script>
    <script type="text/javascript" >
       $(document).ready(createHeader()); 
       $(document).ready(scriptSet()); 
    </script>

id mag es vermeiden, die beiden zu trennen, und während ich im Allgemeinen Skriptlinks nur innerhalb der Kopfzeile sehe, scheinen die document.ready-Funktionen nicht zu funktionieren, wenn sie dort eingefügt werden. Aber am Ende des Körpers scheint alles ganz gut zu funktionieren. Würde das Probleme bereiten oder ist das in Ordnung?




Ich habe eine Reihe von Web-Anwendungen bereitgestellt und hatte noch nie ein Problem damit, dass das Skript im Body-Tag war. Ich möchte es am Ende der Seite platzieren, um den Download-Fortschritt der sichtbaren Elemente auf der Seite nicht zu behindern. Ich glaube, dass Google dies auch mit einigen ihrer Skripte getan hat (vielleicht Analytics?).

Wie einige der anderen gesagt haben, stellen Sie sicher, dass Sie Ihre jQuery-Referenz vor dem $ (document) .ready (); Anruf. Es ist leicht, vorbei zu rutschen und schwer zu beheben :)

JMax




Es spielt normalerweise keine Rolle, ob Sie Ihre Script-Includes und Blöcke in Ihr BODY Element BODY . sie werden in den meisten Fällen völlig in Ordnung sein. Einige Leute glauben, es ist eine schlechte Praxis, aber es ist keine falsche Praxis. Es passiert ständig.

Ich möchte jedoch darauf hinweisen, dass es egal ist, wo Sie einen $.ready() Funktionsaufruf setzen, solange es nach dem jQuery-Include ist, da es immer NACH dem DOM fertig ist (was NACHT auftreten wird) Seitenlade). In diesem Fall macht das also keinen Unterschied.

Notieren Sie die anonyme Funktion im Funktionsaufruf. Dies übergibt einen Verweis auf $.ready() für die anonyme Funktion, wodurch der Funktionskörper zu einem späteren Zeitpunkt ausgeführt werden kann. Daher werden Ihre Funktionen zu einem späteren Zeitpunkt aufgerufen.

<script type="text/javascript">
$(document).ready(function(){
    createHeader(); 
    scriptSet();
}); 
</script>