„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wann sollten Success-Callback-Funktionen von jQuery-Ajax-Aufrufen entkoppelt werden?

Wann sollten Success-Callback-Funktionen von jQuery-Ajax-Aufrufen entkoppelt werden?

Veröffentlicht am 03.11.2024
Durchsuche:180

When to Decouple Success Callback Functions from jQuery Ajax Calls?

Entkopplung erfolgreicher Rückruffunktionen von jQuery-Ajax-Aufrufen

Beim Abrufen von Daten von einem Server mithilfe von jQuery-Ajax ist es üblich, den Erfolg zu definieren Callback-Funktion innerhalb des .ajax()-Blocks. Dadurch wird die Rückrufverarbeitung eng mit dem AJAX-Aufruf verknüpft, was die Flexibilität und Wiederverwendbarkeit einschränkt.

Um den Erfolgsrückruf außerhalb des .ajax()-Blocks zu definieren, wird normalerweise eine Variable zum Speichern der zurückgegebenen Daten deklariert. Es wird jedoch ein modernerer Ansatz mit verzögerten Objekten empfohlen.

Seit jQuery 1.5 bieten verzögerte Objekte eine bessere Möglichkeit, asynchrone Vorgänge wie AJAX-Aufrufe zu verarbeiten. So können Sie dies erreichen:

function getData() {
    return $.ajax({
        url : 'example.com',
        type: 'GET'
    });
}

function handleData(data /* , textStatus, jqXHR */ ) {
    alert(data);
    //do some stuff
}

getData().done(handleData);

Dieser Ansatz entkoppelt die Rückrufverarbeitung vom AJAX-Aufruf und ermöglicht so problemlos mehrere Rückrufe, Fehlerbehandlung und Synchronisierung asynchroner Ereignisse.

Zum Beispiel :

// Timer for demo purposes, resolves itself after 5 seconds
var timer = $.Deferred();
setTimeout(timer.resolve, 5000);

// Get data using AJAX and attach done and error handlers
var ajax = getData().done(handleData).fail(error);

// Wait for both AJAX and timer to finish before continuing
$.when(timer, ajax).done(function() {
    // Both AJAX and 5s timer have finished
});

// Additional callbacks can be added even after AJAX call finishes
ajax.done(function(data) {
    //Do some stuff with data
});

Dies demonstriert die Leistungsfähigkeit verzögerter Objekte und ermöglicht eine größere Kontrolle und Flexibilität über asynchrone Vorgänge in jQuery-Anwendungen.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729250296 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3