Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Saya Boleh Mengendalikan Nilai Pulangan Pembolehubah dengan Betul daripada Panggilan AJAX Asynchronous?

Bagaimanakah Saya Boleh Mengendalikan Nilai Pulangan Pembolehubah dengan Betul daripada Panggilan AJAX Asynchronous?

Patricia Arquette
Patricia Arquetteasal
2024-11-27 22:46:11939semak imbas

How Can I Correctly Handle Variable Return Values from Asynchronous AJAX Calls?

Panggilan AJAX Asynchronous dan Nilai Pulangan Boleh Ubah

Apabila menggunakan AJAX untuk melaksanakan permintaan tak segerak, adalah penting untuk memahami cara nilai pulangan berubah-ubah berfungsi. Dalam senario yang diterangkan, fungsi dalam fail JavaScript yang berasingan sedang membuat panggilan AJAX tetapi nilai yang dikembalikan tidak ditetapkan dengan betul.

Penerangan Isu

Fungsi get_data dalam fail JavaScript yang berasingan melaksanakan permintaan AJAX dan bertujuan untuk mengembalikan data yang diterima daripada pelayan. Walau bagaimanapun, pendekatan ini tidak berfungsi kerana panggilan AJAX adalah tak segerak.

Penjelasan

Panggilan AJAX tak segerak jangan tunggu respons dikembalikan sebelum meneruskan pelaksanaan daripada fungsi panggilan. Dalam kes ini, fungsi get_data kembali sebelum permintaan AJAX selesai, menghasilkan pembolehubah ujian kosong.

Penyelesaian

Untuk menyelesaikan isu ini, kita perlu mengendalikan sifat tak segerak AJAX. Ini boleh dilakukan dengan menyediakan fungsi panggil balik kepada fungsi get_data, yang akan dilaksanakan apabila permintaan AJAX selesai dan data tersedia.

Berikut ialah kod yang dikemas kini:

function get_data(data, destination, callback) {

    if (lock_get == 0) {
        lock_get = 1;
        $.ajax({
            type: "POST",
            url: destination,
            async: true,
            data: data,
            success: function(data) {
                lock_get = 0;
                if (data && callback) {
                    callback(data);
                }
            }
        });
    }
}

Penggunaan

Fungsi get_data yang dikemas kini harus dipanggil dengan fungsi panggil balik sebagai yang ketiga hujah:

get_data(data, destination, function(test){
    notice(test);
});

Dengan menggunakan fungsi panggil balik, kod kini boleh mengendalikan hasil permintaan AJAX apabila ia tersedia.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Nilai Pulangan Pembolehubah dengan Betul daripada Panggilan AJAX Asynchronous?. 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