Enigma Pembolehubah Tidak Dipulangkan dalam Fungsi AJAX
Dalam bidang aplikasi web, adalah perkara biasa untuk memodulasi kod JavaScript ke dalam fail berasingan untuk meningkatkan organisasi dan kebolehselenggaraan. Walau bagaimanapun, peralihan ini boleh memperkenalkan isu misteri, seperti pembolehubah yang kelihatan hilang apabila dikembalikan daripada fungsi AJAX.
Masalah:
Selepas membahagikan rangka kerja kepada berbilang fail, pembangun menghadapi masalah di mana pembolehubah yang dikembalikan daripada fungsi AJAX kekal kosong. Walaupun data terdapat dalam fail JS, ia gagal dikembalikan selepas pelaksanaan. Kod di bawah penelitian:
function get_data(data, destination) { ... if (data) { return data; } }
var test = get_data(data, destination);
Punca:
Sifat tak segerak bagi panggilan AJAX adalah puncanya. Panggilan AJAX dilaksanakan di latar belakang, bermakna kod terus dilaksanakan tanpa menunggu respons. Akibatnya, fungsi get_data kembali sebelum panggilan AJAX selesai, menghasilkan pembolehubah ujian kosong.
Penyelesaian:
Untuk menyelesaikan isu ini, perlu menggunakan panggilan balik berfungsi untuk mengendalikan tindak balas AJAX. Fungsi panggil balik dipanggil apabila panggilan AJAX selesai, membolehkan anda mengakses data yang dikembalikan.
function get_data(data, destination, callback) { ... if (data && callback) { callback(data); } }
get_data(data, destination, function(test) { notice(test); });
Atas ialah kandungan terperinci Mengapa Nilai Pulangan Fungsi AJAX Saya Kosong?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!