Wed Dec 2019 2 years ago

Contoh Menggunakan ajaxComplete () di ajax jquery

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: 

$( document ).ajaxComplete(function() {
  $( ".log" ).text( "Triggered ajaxComplete handler." );
});

Sekarang, buat permintaan Ajax menggunakan metode jQuery apa pun:

$( ".trigger" ).click(function() {
  $( ".result" ).load( "ajax/test.html" );
}); 

Ketika pengguna mengklik elemen dengan kelas triggerdan permintaan Ajax selesai, pesan log ditampilkan.

Semua ajaxCompletepenangan dipanggil, terlepas dari apa permintaan Ajax diselesaikan. Jika Anda harus membedakan antara permintaan, gunakan parameter yang diteruskan ke handler. Setiap kali ajaxCompletehandler dieksekusi, ia melewati objek event, XMLHttpRequestobjek, dan objek pengaturan yang digunakan dalam pembuatan permintaan. Misalnya, Anda dapat membatasi callback untuk hanya menangani acara yang berhubungan dengan URL tertentu:

$( document ).ajaxComplete(function( event, xhr, settings ) {
  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 dilampirkan document.
  • Jika $.ajax()atau $.ajaxSetup()dipanggil dengan globalopsi disetel ke false.ajaxComplete()metode tidak akan diaktifkan.

Contoh:

Tampilkan pesan saat permintaan Ajax selesai.

$( document ).ajaxComplete(function( event, request, settings ) {
  $( "#msg" ).append( "
  • Request Complete.
  • " );
    });