关于 jQuery
经由过程 Ajax
体式格局通报数据时,我们还能够在过程当中举行肯定的处置惩罚,以便到达我们的需求。
视察函数
ajaxStart
和 ajaxStop
函数能够用来作为视察函数,我们能够运用视察函数的回调函数来做响应的处置惩罚。
- 当
Ajax
要求最先且还没有举行其他传输时,会触发ajaxStart
的回调函数。- 当末了一次运动要求停止时,则会实行经由过程
ajaxStop
注册的回调函数。
因为视察函数具有全局性,所以须要运用 $(document)
来挪用。我们经由过程运用 Ajax
要领获得一个图片的例子来测试两个函数:
当前页面为:
<div></div>
<button>load</button>
同目录下的 test.html
内容为:
<img src="avatar.jpg" />
点击按钮后愿望载入图象:
$('button').click(function() {
$('div').load('test.html');
});
此时我们能够运用 ajaxStart
和 ajaxStop
函数来增添提醒:
$(document).ajaxStart(function() {//
alert('load a picture');
}).ajaxStop(function() {
alert('show a picture');
});
$('button').click(function() {
$('div').load('test.html');
});
此时点击按钮后,再图象载入前先提醒 load a picture
,载入后提醒 show a picture
。
错误处置惩罚
最经常使用的体式格局是全局的 ajaxError
要领,以上例为例,假如我们像一个不存在的页面发送数据要求:
$(document).ajaxError(function() {//
alert('load failed!');
});
$('button').click(function() {
$('div').load('noexsited.html');
});
此时点击按钮后:
关于非 load
要领,还能够运用 fail
要领来联缀处置惩罚:
$('button').click(function() {
$.get('noexsited.html', function(data) {
}).fail(function(jqXHR) {
alert('status is ' + jqXHR.status);
});
});
JSONP
JSONP
即 JSON with padding
,添补式 JSON
,应用的是 <script>
标签能够跨域猎取 Javascript
文件的思绪,故能够跨域猎取 JSON
数据。JSONP
的花样是把规范 JSON
文件包装在一对圆括号中,圆括号又前置一个恣意字符串。这个字符串,即所谓的 P
,由要求数据的客户端来决议。
同样是上例的按钮,起首我们将外域页面 otherdomain.com/index.php
内容设置为:
<?php
$data = '{ "name": "stephenlee", "sex": "male" }';
echo $_GET['callback'] .'('. $data .')';
我们运用特别的占位符 ? 来完成跨域猎取 JSON
数据:
$('button').click(function() {
$.getJSON('otherdomain.com/index.php?callback=?', function(data) {
console.log(data);
});
});
数据猎取胜利。