Setiap kali permintaan Ajax selesai, jQuery akan memicu ajaxComplete
acara. Setiap dan semua penangan yang telah terdaftar dengan .ajaxComplete()
metode ini dieksekusi saat ini.
Untuk mengamati metode ini dalam aksi, atur permintaan beban Ajax dasar:
<div class="trigger">Trigger</div>
<div class="result"></div>
<div class="log"></div>
Lampirkan pengendali event ke dokumen:
$( ".log" ).text( "Triggered ajaxComplete handler." );
});
Sekarang, buat permintaan Ajax menggunakan metode jQuery apa pun:
$( ".result" ).load( "ajax/test.html" );
});
Ketika pengguna mengklik elemen dengan kelas trigger
dan permintaan Ajax selesai, pesan log ditampilkan.
Semua ajaxComplete
penangan dipanggil, terlepas dari apa permintaan Ajax diselesaikan. Jika Anda harus membedakan antara permintaan, gunakan parameter yang diteruskan ke handler. Setiap kali ajaxComplete
handler dieksekusi, ia melewati objek event, XMLHttpRequest
objek, dan objek pengaturan yang digunakan dalam pembuatan permintaan. Misalnya, Anda dapat membatasi callback untuk hanya menangani acara yang berhubungan dengan URL tertentu:
if ( settings.url === "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxComplete handler. The result is " +
xhr.responseText );
}
});
Catatan: Anda bisa mendapatkan konten Ajax yang dikembalikan dengan melihat xhr.responseText
.
Catatan tambahan:
- Pada jQuery 1.9, semua penangan untuk acara Ajax global jQuery , termasuk yang ditambahkan dengan
.ajaxComplete()
metode, harus dilampirkandocument
. - Jika
$.ajax()
atau$.ajaxSetup()
dipanggil denganglobal
opsi disetel kefalse
,.ajaxComplete()
metode tidak akan diaktifkan.
Contoh:
Tampilkan pesan saat permintaan Ajax selesai.
$( "#msg" ).append( "
- Request Complete.
- " );
});