Mendapatkan semula Teks Respons AJAX
Apabila bekerja dengan AJAX menggunakan prototaip, adalah penting untuk memahami cara mendapatkan semula teks respons untuk pemprosesan selanjutnya. Kod asal yang anda berikan:
somefunction: function(){ var result = ""; myAjax = new Ajax.Request(postUrl, { method: 'post', postBody: postData, contentType: 'application/x-www-form-urlencoded', onComplete: function(transport){ if (200 == transport.status) { result = transport.responseText; } } }); return result; }
mungkin tidak mengembalikan nilai yang diingini kerana sifat tak segerak AJAX. Berikut ialah pendekatan yang lebih baik:
Meluluskan Fungsi Panggilan Balik
Daripada mengembalikan respons secara langsung, tentukan fungsi panggil balik sebagai parameter untuk beberapa fungsi(). Fungsi panggil balik ini akan digunakan apabila permintaan AJAX selesai:
somefunction: function(callback){ var result = ""; myAjax = new Ajax.Request(postUrl, { method: 'post', postBody: postData, contentType: 'application/x-www-form-urlencoded', onComplete: function(transport){ if (200 == transport.status) { result = transport.responseText; callback(result); } } }); }
Dalam fungsi lain, anda kini boleh memanggil somefunction() dan menyediakan panggilan balik untuk memproses teks respons:
somefunction(function(result){ alert(result); });
Dengan menggunakan fungsi panggil balik, anda boleh memastikan bahawa hasilnya dikendalikan apabila permintaan AJAX selesai, menghapuskan isu rentetan respons kosong.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Teks Respons AJAX dengan betul dalam Prototype.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!