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!