Welchen Sinn hat die Verwendung von Callbacks in jQuery?
Callbacks ist eine in jQuery 1.7 eingeführte Methode, die zum Verwalten einer Gruppe von Callback-Funktionen mit denselben Methodenparametern verwendet wird. Neben dem Hinzufügen, Löschen und Löschen von Callbacks wie Arrays bietet Callbacks auch mehrere spezielle Modi. In verschiedenen Modi unterscheiden sich der Lebenszyklus und die Ausführungsreihenfolge der Rückruffunktionen geringfügig.
Callback-Spalte generieren (Callbacks)
var callbacks = $.Callbacks(flags);
Der Parameter falgs ist eine Zeichenfolge, die verwendet wird, um den Modus von Callbacks anzugeben. Im Modus „Once stopOnFalse“ erfolgt der Callback beispielsweise nur höchstens einmal ausgeführt werden. Wenn ein bestimmter Callback während der Ausführung „false“ zurückgibt, wird auch die Ausführung der Callback-Spalte unterbrochen.
Wo sind also die Einsatzszenarien für jQuery.Callbacks?
In vielen Fällen ist es notwendig, die sequentielle Ausführung einer Reihe von Funktionen zu steuern. Dann ist im Allgemeinen eine Warteschlangenfunktion erforderlich, um dieses Problem zu lösen
Schauen wir uns einen Code an
function Aaron(List, callback) { setTimeout(function() { var task = List.shift(); task(); //执行函数 if (task.length > 0) { //递归分解 setTimeout(arguments.callee, 1000) } else { callback() } }, 25) } Aaron([function(){ alert('a') },function(){ alert('b') }],function(){ alert('callback') }) 分别弹出 ‘a’ , ‘b’ ,’callback’
Übergeben Sie einen Satz Funktionsparameter, verlassen Sie sich auf eine rekursive Analyse und führen Sie sie einzeln aus um eins. Tatsächlich können Sie sich darauf verlassen setTimeout Das Prinzip, eine Funktion am Ende der Warteschlange hinzuzufügen, bevor sie ausgeführt wird
***** Aber ist es mühsam, sie so zu schreiben? *****
Wechseln wir zur von jQuery bereitgestellten Methode
var callbacks = $.Callbacks(); callbacks.add(function() { alert('a'); }) callbacks.add(function() { alert('b'); }) callbacks.fire(); //输出结果: 'a' 'b'
Ist das nicht viel praktischer und der Code ist sehr klar? Es handelt sich um ein Mehrzweck-Rückruffunktionslistenobjekt, das eine leistungsstarke Möglichkeit zum Verwalten der Rückruffunktionswarteschlange bietet.
Es bietet außerdem mehrere praktische Verarbeitungsparameter
einmal: Stellen Sie sicher, dass diese Rückrufliste nur einmal ausgeführt wird (.fire()) (wie ein verzögerter Speicher).
Speicher : Behalten Sie den vorherigen Wert bei. Der zuletzt am Ende dieser Liste hinzugefügte Wert wird sofort ausgeführt, wenn ein Rückruf aufgerufen wird (z. B. ein verzögerter Wert).
einzigartig: Stellt sicher, dass jeweils nur ein Rückruf hinzugefügt werden kann (also in der Liste gibt es keine doppelten Rückrufe).
stopOnFalse: Wenn ein Rückruf „false“ zurückgibt, unterbrechen Sie den Anruf
var callbacks = $.Callbacks('once'); callbacks.add(function() { alert('a'); }) callbacks.add(function() { alert('b'); }) callbacks.fire(); //输出结果: 'a' 'b' callbacks.fire(); //未执行
einmal, damit die Rückrufwarteschlange nur einmal ausgeführt wird
Rückrufmodus
Standardmodus: Die Rückrufe in der Rückrufspalte können standardmäßig mehrmals ausgeführt werden und die Rückruffunktion kann wiederholt hinzugefügt werden. Während der Ausführung wird der neu hinzugefügte Rückruf jedoch nicht ausgeführt.
einmal: Jeder Rückruf in der Spalte wird höchstens einmal ausgeführt. Nach Abschluss der Ausführung wird die Rückruffunktionsspalte gelöscht.
Speicher: Wenn während des Rückrufausführungsprozesses ein neuer Rückruf hinzugefügt wird, kann der neue Rückruf auch ausgeführt werden.
Einzigartig: Derselbe Rückruf kann nicht wiederholt hinzugefügt werden.
stopOnFalse: Wenn ein Rückruf „false“ zurückgibt, werden nachfolgende Rückrufe nicht ausgeführt, auch nicht im Speichermodus.
var callbacks = $.Callbacks("once memory");
Callback-Ausführungsreihenfolge
Die Callbacks werden im Array gespeichert und dann durch eine for-Schleife durchlaufen, sodass die Callbacks in der Spalte in der Reihenfolge ausgeführt werden, in der sie hinzugefügt werden, und die Der zuletzt hinzugefügte Befehl wird im Allgemeinen zuletzt ausgeführt.
// Fire the items on the list var foo = function( value ) { console.log( "foo:" + value ); }; // Add another function to the list var bar = function( value ){ console.log( "bar:" + value ); }; var callbacks = $.Callbacks(); callbacks.add( foo ); callbacks.add( bar); callbacks.fire("hello"); // output: foo: hello // output: bar: hello
Die einzige Ausnahme ist, wenn es sich bei der Markierung um einen Speicher handelt und wenn fire() zuvor aufgerufen wurde, dann wird der neue Rückruf sofort mit den Parametern des vorherigen Feuers ausgeführt, nachdem er durch add( hinzugefügt wurde. ). Allerdings wird der von fire() vor add() aufgerufene Callback nicht sofort erneut ausgeführt, wenn fire() oder fireWith() nicht verwendet wird.
Weitere wichtige Punkte
Fire() oder fireWith() von Rückrufen in der Rückruffunktion aufrufen
Es gibt eine Situation, in der es erneut aufgerufen wird Was soll ich in diesem Fall in der fire()- oder fireWith()-Methode des Callback-Callbacks-Objekts tun?
Jquery macht Folgendes: Rufen Sie fire() oder fireWith() im Rückruf auf. Das Callbacks-Objekt speichert nur die Parameter von fire() oder fireWith() und führt den Rückruf nicht sofort in der Spalte aus. Nachdem alle Callbacks in Callbacks ausgeführt wurden, führen Sie alle Callbacks im Callbacks-Objekt mit neuen Parametern erneut aus.
Hinweis: Wenn die Markierung einmal ist, hat die Ausführung von fire oder fireWith() im Rückruf keine Auswirkung.
function fn1( value ){ console.log( value ); if (value == "bar!") return false; callbacks.fire("bar!"); } function fn2( value ){ console.log( "fn2 says: " + value); } var callbacks =$.Callbacks("stopOnFalse"); callbacks.add( fn1 ); callbacks.add( fn2 ); // Outputs: foo! // Outputs: fn2 says:foo! // Outputs: bar! callbacks.fire("foo!" );
Nach dem Aufruf von callbacks.disable() können Rückrufe nicht mehr aktiviert werden
Nach dem Aufruf von unlock() wird die Rückruffunktionsliste zu diesem Zeitpunkt mit fire oder fireWith gelöscht funktioniert nicht. Es erfolgt keine Antwort. Daher stellt Callbacks keine Aktivierungsmethode bereit, da alle Rückrufe gelöscht wurden und keine Notwendigkeit besteht, sie erneut zu aktivieren.
callbacks.lock()
Die Callback-Spalte ist gesperrt und der Aufruf von callbacks.fire() oder callbacks.fireWith() ist ungültig.
Wenn callbacks.lock() in einem Callback aufgerufen wird, ist eines zu beachten:
Callbacks haben einen Speichertag: Im aktuellen fire() oder fireWith werden keine Callbacks ausgeführt Die Ausführung der ()-Methode wird fortgesetzt, aber callbacks.fire() und callbacks.fireWith() im Callback funktionieren nicht mehr.
Rückrufe haben kein Memory-Tag: Alle Rückrufe werden gelöscht, was bedeutet, dass nachfolgende Rückrufe nicht mehr ausgeführt werden.
Das Seltsame ist, dass Callbacks keine Entsperrmethode bieten. Das heißt, sobald sie gesperrt sind, verlieren Callbacks dauerhaft die Fähigkeit, fire() oder fireWith() aufzurufen.
Das obige ist der detaillierte Inhalt vonWelchen Sinn hat die Verwendung von Callbacks in jQuery?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Detaillierte Erläuterung der jQuery-Referenzmethode: Kurzanleitung jQuery ist eine beliebte JavaScript-Bibliothek, die häufig in der Website-Entwicklung verwendet wird. Sie vereinfacht die JavaScript-Programmierung und bietet Entwicklern umfangreiche Funktionen und Features. In diesem Artikel wird die Referenzmethode von jQuery ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern einen schnellen Einstieg zu erleichtern. Einführung in jQuery Zuerst müssen wir die jQuery-Bibliothek in die HTML-Datei einführen. Es kann über einen CDN-Link eingeführt oder heruntergeladen werden

Wie verwende ich die PUT-Anfragemethode in jQuery? In jQuery ähnelt die Methode zum Senden einer PUT-Anfrage dem Senden anderer Arten von Anfragen, Sie müssen jedoch auf einige Details und Parametereinstellungen achten. PUT-Anfragen werden normalerweise zum Aktualisieren von Ressourcen verwendet, beispielsweise zum Aktualisieren von Daten in einer Datenbank oder zum Aktualisieren von Dateien auf dem Server. Das Folgende ist ein spezifisches Codebeispiel, das die PUT-Anforderungsmethode in jQuery verwendet. Stellen Sie zunächst sicher, dass Sie die jQuery-Bibliotheksdatei einschließen. Anschließend können Sie eine PUT-Anfrage senden über: $.ajax({u

jQuery ist eine schnelle, kleine und funktionsreiche JavaScript-Bibliothek, die häufig in der Front-End-Entwicklung verwendet wird. Seit seiner Veröffentlichung im Jahr 2006 ist jQuery für viele Entwickler zu einem der bevorzugten Tools geworden, hat in der Praxis jedoch auch einige Vor- und Nachteile. In diesem Artikel werden die Vor- und Nachteile von jQuery eingehend analysiert und anhand spezifischer Codebeispiele veranschaulicht. Vorteile: 1. Prägnante Syntax Das Syntaxdesign von jQuery ist prägnant und klar, was die Lesbarkeit und Schreibeffizienz des Codes erheblich verbessern kann. Zum Beispiel,

Wie entferne ich das Höhenattribut eines Elements mit jQuery? Bei der Front-End-Entwicklung müssen wir häufig die Höhenattribute von Elementen manipulieren. Manchmal müssen wir möglicherweise die Höhe eines Elements dynamisch ändern, und manchmal müssen wir das Höhenattribut eines Elements entfernen. In diesem Artikel wird erläutert, wie Sie mit jQuery das Höhenattribut eines Elements entfernen, und es werden spezifische Codebeispiele bereitgestellt. Bevor wir jQuery zum Betreiben des Höhenattributs verwenden, müssen wir zunächst das Höhenattribut in CSS verstehen. Das Höhenattribut wird verwendet, um die Höhe eines Elements festzulegen

Titel: jQuery-Tipps: Ändern Sie schnell den Text aller Tags auf der Seite. In der Webentwicklung müssen wir häufig Elemente auf der Seite ändern und bedienen. Wenn Sie jQuery verwenden, müssen Sie manchmal den Textinhalt aller a-Tags auf der Seite gleichzeitig ändern, was Zeit und Energie sparen kann. Im Folgenden wird erläutert, wie Sie mit jQuery den Text aller Tags auf der Seite schnell ändern können, und es werden spezifische Codebeispiele angegeben. Zuerst müssen wir die jQuery-Bibliotheksdatei einführen und sicherstellen, dass der folgende Code in die Seite eingefügt wird: <

Titel: Verwenden Sie jQuery, um den Textinhalt aller Tags zu ändern. jQuery ist eine beliebte JavaScript-Bibliothek, die häufig zur Verarbeitung von DOM-Operationen verwendet wird. Bei der Webentwicklung müssen wir häufig den Textinhalt des Link-Tags (eines Tags) auf der Seite ändern. In diesem Artikel wird erläutert, wie Sie mit jQuery dieses Ziel erreichen, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir die jQuery-Bibliothek in die Seite einführen. Fügen Sie den folgenden Code in die HTML-Datei ein:

Wie kann man feststellen, ob ein jQuery-Element ein bestimmtes Attribut hat? Wenn Sie jQuery zum Betreiben von DOM-Elementen verwenden, stoßen Sie häufig auf Situationen, in denen Sie feststellen müssen, ob ein Element ein bestimmtes Attribut hat. In diesem Fall können wir diese Funktion einfach mit Hilfe der von jQuery bereitgestellten Methoden implementieren. Im Folgenden werden zwei häufig verwendete Methoden vorgestellt, um festzustellen, ob ein jQuery-Element über bestimmte Attribute verfügt, und um spezifische Codebeispiele anzuhängen. Methode 1: Verwenden Sie die Methode attr() und den Operator typeof //, um zu bestimmen, ob das Element ein bestimmtes Attribut hat

jQuery ist eine beliebte JavaScript-Bibliothek, die häufig zur DOM-Manipulation und Ereignisbehandlung in Webseiten verwendet wird. In jQuery wird die Methode eq() verwendet, um Elemente an einer bestimmten Indexposition auszuwählen. Die spezifischen Verwendungs- und Anwendungsszenarien sind wie folgt. In jQuery wählt die Methode eq() das Element an einer angegebenen Indexposition aus. Indexpositionen beginnen bei 0 zu zählen, d. h. der Index des ersten Elements ist 0, der Index des zweiten Elements ist 1 und so weiter. Die Syntax der eq()-Methode lautet wie folgt: $("s
