Rumah >hujung hadapan web >tutorial js >Bila hendak memisahkan Fungsi Panggilan Balik Kejayaan daripada Panggilan Ajax jQuery?

Bila hendak memisahkan Fungsi Panggilan Balik Kejayaan daripada Panggilan Ajax jQuery?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-18 19:18:29846semak imbas

When to Decouple Success Callback Functions from jQuery Ajax Calls?

Menyahgandingkan Fungsi Panggilan Balik Kejayaan daripada Panggilan Ajax jQuery

Apabila mendapatkan semula data daripada pelayan menggunakan jQuery ajax, adalah amalan biasa untuk menentukan kejayaan fungsi panggil balik dalam blok .ajax(). Ini menggabungkan pengendalian panggilan balik dengan ketat dengan panggilan AJAX, mengehadkan fleksibiliti dan kebolehgunaan semula.

Untuk menentukan panggilan balik kejayaan di luar blok .ajax(), pembolehubah untuk menyimpan data yang dikembalikan biasanya diisytiharkan. Walau bagaimanapun, pendekatan yang lebih moden menggunakan objek tertunda disyorkan.

Sejak jQuery 1.5, objek tertunda menawarkan cara yang lebih baik untuk mengendalikan operasi tak segerak seperti panggilan AJAX. Begini cara anda boleh mencapainya:

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

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

getData().done(handleData);

Pendekatan ini memisahkan pengendalian panggil balik daripada panggilan AJAX, membenarkan berbilang panggilan balik, pengendalian ralat dan penyegerakan acara tak segerak dengan mudah.

Untuk contoh:

// 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
});

Ini menunjukkan kuasa objek tertunda, membolehkan kawalan dan fleksibiliti yang lebih besar ke atas operasi tak segerak dalam aplikasi jQuery.

Atas ialah kandungan terperinci Bila hendak memisahkan Fungsi Panggilan Balik Kejayaan daripada Panggilan Ajax jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn