Rumah  >  Artikel  >  hujung hadapan web  >  Nota Kajian jQuery - Operasi Ajax (3) - Processing_jquery

Nota Kajian jQuery - Operasi Ajax (3) - Processing_jquery

WBOY
WBOYasal
2016-05-16 16:43:121250semak imbas

Fungsi pemerhatian

Fungsi ajaxStart dan ajaxStop boleh digunakan sebagai fungsi pemerhatian, dan kita boleh menggunakan fungsi panggil balik fungsi pemerhatian untuk melaksanakan pemprosesan yang sepadan.

Fungsi panggil balik ajaxStart dicetuskan apabila permintaan Ajax bermula dan tiada penghantaran lain telah dibuat.
Apabila permintaan aktif terakhir ditamatkan, fungsi panggil balik yang didaftarkan melalui ajaxStop dilaksanakan.
Oleh kerana fungsi pemerhatian adalah global, ia perlu dipanggil menggunakan $(document). Kami menguji kedua-dua fungsi dengan menggunakan kaedah Ajax untuk mendapatkan contoh imej:
Halaman semasa ialah:

<div></div>
<button>load</button>

Kandungan test.html dalam direktori yang sama ialah:

<img src="avatar.jpg" />

Ingin memuatkan imej selepas mengklik butang:

 $('button').click(function() {
  $('div').load('test.html');
 });

Pada ketika ini kita boleh menggunakan fungsi ajaxStart dan ajaxStop untuk menambah gesaan:

 $(document).ajaxStart(function() {//
  alert('load a picture');
 }).ajaxStop(function() {
  alert('show a picture');
 });
 $('button').click(function() {
  $('div').load('test.html');
 });

Selepas mengklik butang pada masa ini, ia akan menggesa memuatkan gambar sebelum imej dimuatkan dan menunjukkan gambar selepas dimuatkan.

Ralat pengendalian

Kaedah yang paling biasa digunakan ialah kaedah ajaxError global Ambil contoh di atas sebagai contoh Jika kami menghantar permintaan data ke halaman yang tidak wujud:

 $(document).ajaxError(function() {//
  alert('load failed!');
 });
 $('button').click(function() {
  $('div').load('noexsited.html');
 });

Selepas mengklik butang pada masa ini:

Untuk kaedah bukan beban, anda juga boleh menggunakan kaedah gagal untuk pemprosesan gabungan:

 $('button').click(function() {
  $.get('noexsited.html', function(data) {

  }).fail(function(jqXHR) {
   alert('status is ' + jqXHR.status);
  });
 });

JSONP

JSONP ialah JSON dengan pelapik, JSON berlapik, yang menggunakan teg 855348821b2e8f2cc4b633bf98f064df untuk mendapatkan fail Javascript merentas domain, jadi data JSON boleh diperoleh merentas domain.
Format JSONP adalah untuk membungkus fail JSON standard dalam sepasang kurungan, yang didahului oleh rentetan arbitrari. Rentetan ini, dipanggil P, ditentukan oleh pelanggan yang meminta data.
Butang yang sama seperti dalam contoh di atas, mula-mula kita tetapkan kandungan halaman domain luaran otherdomain.com/index.php kepada:

<&#63;php
$data = '{ "name": "stephenlee", "sex": "male" }';
echo $_GET['callback'] .'('. $data .')';

Kami menggunakan pemegang tempat khas untuk mencapai pemerolehan merentas domain data JSON:

 $('button').click(function() {
  $.getJSON('otherdomain.com/index.php&#63;callback=&#63;', function(data) {
   console.log(data);
  });
 });


Pemerolehan data berjaya.

Kenyataan:
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