html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

jQuery学习笔记之 Ajax操作篇(三) - 过程处理_jquery_

[ ] 已经帮助:人解决问题

观察函数ZpCHTML5中文学习网 - HTML5先行者学习网

ajaxStart 和 ajaxStop 函数可以用来作为观察函数,我们可以使用观察函数的回调函数来做相应的处理。ZpCHTML5中文学习网 - HTML5先行者学习网

当 Ajax 请求开始且尚未进行其他传输时,会触发 ajaxStart 的回调函数。ZpCHTML5中文学习网 - HTML5先行者学习网
当最后一次活动请求终止时,则会执行通过 ajaxStop 注册的回调函数。ZpCHTML5中文学习网 - HTML5先行者学习网
由于观察函数具备全局性,所以需要使用 $(document) 来调用。我们通过使用 Ajax 方法取得一个图片的例子来测试两个函数:ZpCHTML5中文学习网 - HTML5先行者学习网
当前页面为:ZpCHTML5中文学习网 - HTML5先行者学习网

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

ZpCHTML5中文学习网 - HTML5先行者学习网

同目录下的 test.html 内容为:ZpCHTML5中文学习网 - HTML5先行者学习网

<img src="avatar.jpg" />

点击按钮后希望载入图像:ZpCHTML5中文学习网 - HTML5先行者学习网

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

ZpCHTML5中文学习网 - HTML5先行者学习网

此时我们可以使用 ajaxStart 和 ajaxStop 函数来增加提示:ZpCHTML5中文学习网 - HTML5先行者学习网

 $(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。ZpCHTML5中文学习网 - HTML5先行者学习网

错误处理ZpCHTML5中文学习网 - HTML5先行者学习网

最常用的方式是全局的 ajaxError 方法,以上例为例,如果我们像一个不存在的页面发送数据请求:ZpCHTML5中文学习网 - HTML5先行者学习网

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

此时点击按钮后:ZpCHTML5中文学习网 - HTML5先行者学习网

ZpCHTML5中文学习网 - HTML5先行者学习网

对于非 load 方法,还可以使用 fail 方法来连缀处理:ZpCHTML5中文学习网 - HTML5先行者学习网

 $('button').click(function() {  $.get('noexsited.html', function(data) {  }).fail(function(jqXHR) {   alert('status is ' + jqXHR.status);  }); });

ZpCHTML5中文学习网 - HTML5先行者学习网

JSONPZpCHTML5中文学习网 - HTML5先行者学习网

JSONP 即 JSON with padding,填充式 JSON,利用的是 <script> 标签可以跨域获取 Javascript 文件的思路,故可以跨域获取 JSON 数据。ZpCHTML5中文学习网 - HTML5先行者学习网
JSONP 的格式是把标准 JSON 文件包装在一对圆括号中,圆括号又前置一个任意字符串。这个字符串,即所谓的 P,由请求数据的客户端来决定。ZpCHTML5中文学习网 - HTML5先行者学习网
同样是上例的按钮,首先我们将外域页面 otherdomain.com/index.php 内容设置为:ZpCHTML5中文学习网 - HTML5先行者学习网

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

我们使用特殊的占位符 ? 来实现跨域获取 JSON 数据:ZpCHTML5中文学习网 - HTML5先行者学习网

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

ZpCHTML5中文学习网 - HTML5先行者学习网

ZpCHTML5中文学习网 - HTML5先行者学习网
数据获取成功。ZpCHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助