2012-09-26 12 views
15

Gibt es eine Möglichkeit, jQuery-Code auszuführen, bevor das DOM bereit ist?Ausführen von jQuery-Code, bevor das DOM bereit ist?

+1

Ja. Teile davon, die mit dem DOM interagieren, funktionieren jedoch nicht. –

+2

Ja, es gibt, aber da jQuery in erster Linie das DOM ändern soll, warum möchten Sie? –

+0

siehe :: http://stackoverflow.com/questions/4124765/how-to-load-jquery-before-dom-ist-ready –

Antwort

16

jQuery ist nur Javascript, so ist die Frage wirklich "Ist es möglich, JavaScript zu starten, bevor das DOM bereit ist" und damit vermute ich, dass Sie das Dokument und nicht DOM meinen.

Wenn wir zustimmen können, dass die Frage ist "Ist es möglich, JavaScript auszuführen, bevor das Dokument bereit ist". Dann ist die Antwort ja. Das JavaScript wird ausgeführt, wenn es gefunden wird.

Deshalb sollten Sie fast immer entweder oder $(document).ready(function(){...}) sehen, weil die meist jQuery-Code das Dokument bereit sein erfordert aber der Code die Event-Handler Befestigung ausgeführt wird sicherlich, bevor das Dokument bereit ist (sonst wäre es nicht in der Lage sein, die zu handhaben Dokument bereit Ereignis).

Normalerweise sollten Sie Ihre Javascript-Includes am Ende Ihrer HTML-Datei platzieren, aber wenn Sie es früher ausführen möchten, können Sie es einfach früher in das Dokument einfügen, z. in der Kopfzeile.

<html> 
    <head> 
    ... 
    <script> 
     //place your code to be executed early here 
    </script> 
    </head> 
... 
</html> 
3

Wenn Sie jQuery im Kopf des Dokuments enthalten, und geben Sie Ihren Code in einem anderen Skript-Tag im Kopf schreiben, wird er vor dem DOM laufen ist fertig:

<head> 
    <script src="jquery.js"></script> 
    <script> 
     // Do some stuff before the DOM is ready 
    </script> 
</head> 
<body> 
    <!-- Browser hasn't got this far, so no elements will be available --> 
</body> 

jedoch offensichtlich gewann man‘ Sie können mit beliebigen DOM-Elementen interagieren, da sie noch nicht existieren.


gesagt haben, dass es eine Technik ist, dass Sie in modernen Browsern verwenden können, die Sie mit DOM-Elementen zu interagieren lassen können, wie sie in die Seite eingefügt werden (während der Browser rendert). Es beruht auf CSS animation events. Ich habe a simple library (Progressive.js) geschrieben, um dies einfacher zu handhaben.

Verwandte Themen