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

Patricia Arquette
Lepaskan: 2024-11-27 22:46:11
asal
940 orang telah melayarinya

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);
                }
            }
        });
    }
}
Salin selepas log masuk

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);
});
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan