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


Posted in Javascript onJune 23, 2014

观察函数

ajaxStart 和 ajaxStop 函数可以用来作为观察函数,我们可以使用观察函数的回调函数来做相应的处理。

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

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

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

同目录下的 test.html 内容为:

<img src="avatar.jpg" />

点击按钮后希望载入图像:

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

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

此时我们可以使用 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');
 });

此时点击按钮后:

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

对于非 load 方法,还可以使用 fail 方法来连缀处理:

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

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

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

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);
  });
 });

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

数据获取成功。

Javascript 相关文章推荐
用jscript实现新建和保存一个word文档
Jun 15 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
Mar 08 Javascript
根据当前时间在jsp页面上显示上午或下午
Aug 18 Javascript
JavaScript中window.showModalDialog()用法详解
Dec 18 Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 Javascript
详解Javacript和AngularJS中的Promises
Feb 09 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
Jun 28 Javascript
微信小程序 sha1 实现密码加密实例详解
Jul 06 Javascript
详解Angular路由之路由守卫
May 10 Javascript
小程序图片长按识别功能的实现方法
Aug 30 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
Sep 13 Javascript
vue实现全屏滚动效果(非fullpage.js)
Mar 07 Javascript
jquery 为a标签绑定click事件示例代码
Jun 23 #Javascript
a标签click和href执行顺序探讨
Jun 23 #Javascript
jquery trigger伪造a标签的click事件取代window.open方法
Jun 23 #Javascript
javascript将浮点数转换成整数的三个方法
Jun 23 #Javascript
jquery用data方法获取某个元素上的事件
Jun 23 #Javascript
如何正确使用javascript 来进行我们的程序开发
Jun 23 #Javascript
js实现键盘操作实现div的移动或改变的原理及代码
Jun 23 #Javascript
You might like
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
PHP基础教程(php入门基础教程)一些code代码
2013/01/06 PHP
深入php常用函数的使用汇总
2013/06/08 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
jQuery实现自动切换播放的经典滑动门效果
2015/09/12 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
详解使用angular的HttpClient搭配rxjs
2017/09/01 Javascript
浅谈vue,angular,react数据双向绑定原理分析
2017/11/28 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
在Python的Django框架中创建语言文件
2015/07/27 Python
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
Mistine官方海外旗舰店:泰国国民彩妆品牌
2016/12/28 全球购物
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
运动会入场词200字
2014/02/15 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
2014流动人口计划生育工作总结
2014/12/20 职场文书
内乡县衙导游词
2015/02/05 职场文书
病人慰问信范文
2015/02/15 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript