Cara Menjeda Perlaksanaan Fungsi Sehingga Permintaan jQuery Ajax Selesai
Apabila melaksanakan berbilang permintaan jQuery Ajax dalam fungsi, ia boleh menjadi perlu untuk memastikan bahawa semua permintaan telah diselesaikan sebelum meneruskan ke tindakan seterusnya. Ini amat penting untuk mengelakkan ketidakkonsistenan data atau keadaan perlumbaan.
Untuk menangani isu ini, jQuery memperkenalkan fungsi .when() yang berkuasa. Fungsi ini membenarkan pembangun untuk menentukan berbilang objek Tertunda sebagai argumen dan melaksanakan fungsi panggil balik apabila kesemuanya diselesaikan.
Pertimbangkan contoh berikut di mana anda memulakan empat permintaan Ajax:
function ajax1() { return $.ajax({ /* Ajax request parameters */ }); }
Untuk menunggu untuk kesemua empat permintaan untuk diselesaikan sebelum meneruskan, anda boleh menggunakan .when() sebagai berikut:
$.when(ajax1(), ajax2(), ajax3(), ajax4()).done(function(a1, a2, a3, a4){ // This code will execute when all Ajax requests resolve. // a1, a2, a3, and a4 contain response data and status. });
Pendekatan ini memastikan bahawa tindakan seterusnya tidak dilaksanakan sehingga semua permintaan Ajax berjaya diselesaikan, mengurangkan risiko ralat dan isu integriti data.
Untuk situasi di mana anda mempunyai bilangan pembolehubah permintaan Ajax, senarai hujah boleh dijana secara dinamik. Walau bagaimanapun, ini memerlukan pendekatan yang lebih rumit sedikit.
Selain itu, fungsi .when() mengembalikan objek jQuery Promise yang merangkumi semua pertanyaan Ajax. Ini memberikan kawalan lanjut ke atas mod kegagalan dengan membenarkan anda menentukan pengendali kejayaan dan kegagalan tersuai menggunakan .then() dan .fail().
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memastikan Semua Permintaan Ajax jQuery Selesai Sebelum Meneruskan Pelaksanaan Fungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!