Wie hat jquery $ (document) .ready () implementiert?

8

Wie hat jquery $(document).ready() implementiert?

natürlich kann ich den Code lesen, aber ich suche nach dem Konzept ...

    
ciochPep 29.03.2011, 17:15
quelle

3 Antworten

3

Im Allgemeinen Es prüft, ob der Browser das body-Element bereits in den DOM-Baum geladen hat, in diesem Fall führt es die cb () aus, ohne auf die anderen Anfragen (Bilder ...) zu warten.

andernfalls wartet es irgendwann und überprüft es erneut ..

    
DuduAlul 29.03.2011, 17:25
quelle
20

Konzept: jQuery.ready

  
    

Während JavaScript das load-Ereignis zum Ausführen von Code beim Rendern einer Seite bereitstellt, wird dieses Ereignis erst dann ausgelöst, wenn alle Assets wie Bilder vollständig empfangen wurden. In den meisten Fällen kann das Skript ausgeführt werden, sobald die DOM-Hierarchie vollständig erstellt wurde. Der an .ready () übergebene Handler wird garantiert ausgeführt, nachdem das DOM bereit ist. Dies ist normalerweise der beste Ort, um alle anderen Event-Handler anzuhängen und anderen jQuery-Code auszuführen. Bei Verwendung von Skripten, die sich darauf verlassen Beim Wert von CSS-Stileigenschaften ist es wichtig, auf externe Stylesheets zu verweisen oder Stilelemente einzubetten, bevor auf die Skripts verwiesen wird.

  

Es implementiert es abhängig vom Browser (IE ist zum Beispiel anders), nimmt aber einige spezielle Fälle an, zum Beispiel wenn es aufgerufen wird nachdem das DOM geladen ist. (Ich bin nicht sicher, wie diese Frage beantwortet werden kann ohne auf die Quelle zu schauen).

Das Herz von jQuery.ready (das, was die Ereignisbindungen einrichtet) ist:

%Vor%

Nur einmal binden.

%Vor%

Achten Sie darauf, den Fall zu behandeln, wo nach "DOM load" heißt.

%Vor%

W3C Standard-Ereignismodell.

%Vor%

Old-School Fallback.

%Vor%

IE-Ereignismodell (wahrscheinlich wird auch Opera damit arbeiten).

%Vor%

Old-School Fallback.

%Vor%

Mehr Verhalten, um es in verschiedenen Kontexten konsistent mit IE zu arbeiten. Beachten Sie, dass die Ereignisbindung für 'onreadystatechange'

gilt %Vor%

doScrollCheck richtet eine "Abfrage" im IE ein, die den Handler nur aufruft, wenn die Erfolgsbedingung erfolgreich ist. Siehe die Quelle für Details (es verwendet eine Eigenart von IE).

Glückliche Kodierung.

    
user166390 29.03.2011 17:31
quelle
2

Es wird getestet, ob document.body nicht zu etwas Falschem ausgewertet wird: Ссылка

    
ThiefMaster 29.03.2011 17:18
quelle

Tags und Links