Als Beispiel:Wie behandelt jQuery.ready() einen Anruf an sich selbst?
$(function(){
//do stuff
$(function(){
//do other stuff
});
});
Natürlich in Code geschrieben dies scheint keinen Sinn zu machen. Aber ein Plugin, das mit HTML-Elementen arbeitet, kann .ready() verwenden, während es selbst auf einem Element im .ready() des Hauptskriptes ausgeführt wird. Wie geht jQuery genau damit um? Es funktioniert klar, aber macht es etwas Besonderes?
Ist es "sofort" wie in _synchronously_ (vor '.ready()' Returns)? – nnnnnn
Ja, es ist synchron. Sie können die Ausführung auf bereits geladener Seite testen: jQuery (Dokument) .ready (function() {für (i = 0; i <1000000; i ++) {;}; console.log ('2');}); console.log ('1'); –
Ich bekomme das: 'global .ready() START, 0ms; global .ready() ENDE, 8ms; plugin .ready()() START, 11ms; plugin .ready() END, 12ms'. Das Ergebnis ist konstant, egal ob ich das Plugin am Anfang oder am Ende der globalen .ready aufruft. Somit scheint sich der ready-Aufruf innerhalb des Plugins nach dem bereits ausgeführten .ready, von dem es aufgerufen wird, in die Warteschlange zu stellen – Armatus