Heim >Web-Frontend >js-Tutorial >Wie definiere ich eine jQuery-AJAX-Erfolgsrückruffunktion außerhalb des .ajax()-Blocks?
jQuery AJAX Success Callback Function Definition Outside .ajax() Block
In jQuery können Sie Daten von einem Server mithilfe des $ abrufen. ajax()-Methode. Normalerweise wird die Erfolgsrückruffunktion innerhalb des .ajax()-Blocks definiert. Es ist jedoch möglich, den Rückruf außerhalb des Blocks zu definieren.
Definieren der Rückruffunktion außerhalb des .ajax()-Blocks
Um den Erfolgsrückruf außerhalb des .ajax()-Blocks zu definieren. ajax()-Block verwenden, sollten Sie das Ergebnis von $.ajax() wie folgt zurückgeben:
<code class="javascript">function getData() { return $.ajax({ url: 'example.com', type: 'GET' }); }</code>
Dann können Sie die .done()-Methode verwenden, um den Rückruf außerhalb des .ajax()-Aufrufs hinzuzufügen :
<code class="javascript">getData().done(handleData);</code>
Verarbeitung der Daten
Die handleData-Funktion kann wie folgt definiert werden:
<code class="javascript">function handleData(data) { alert(data); // Do other stuff }</code>
Die an die handleData-Funktion übergebenen Daten sind die vom Server zurückgegebenen Daten.
Vorteile der Definition des Rückrufs außerhalb des .ajax()-Blocks
Die Definition des Rückrufs außerhalb des .ajax()-Blocks bietet mehrere Vorteile:
Beispiel
Der folgende Code zeigt, wie diese Technik verwendet wird:
<code class="javascript">// A trivial timer for demo purposes var timer = $.Deferred(); setTimeout(timer.resolve, 5000); // Add a `done` and an `error` handler to the AJAX call var ajax = getData().done(handleData).fail(error); // Wait for both the AJAX call and the timer to finish $.when(timer, ajax).done(function() { // Both operations have finished }); // Add an additional `done` handler to the AJAX call ajax.done(function() { // Can be added even if the AJAX call has already finished });</code>
Diese Technik kann nützlich sein, um die AJAX-Funktionalität von den nachfolgenden Aktionen zu entkoppeln und mehrere asynchrone Vorgänge zu synchronisieren.
Das obige ist der detaillierte Inhalt vonWie definiere ich eine jQuery-AJAX-Erfolgsrückruffunktion außerhalb des .ajax()-Blocks?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!