AJAX,即Asynchronous Javascript And XML,可实现无刷新状态更新页面和异步提交
优点:
- 不需要插件支持
- 用户体验极佳
- 提升Web程序性能
- 减轻服务器和宽带的负担
缺点:
- 前进后退按钮被破坏
- 搜索引擎的支持不够
- 开发调试工具缺乏
同步和异步
- 同步:也就是必须一件一件事做,等前一件做完了才能做下一件事
- 异步:不需要等到前一件事做完,可多事同做
JQuery对AJAX进行了三层封装
最底层:封装了基础Ajax一些操作;
-
- 全局方法:$.ajax()
- 提交的数据在data中,用post方式提交,提交数据须用"{}"包裹,以"key:value"的形式提交
- 提交整个表单时,可使用表单序列化"serialize()",提交整个表单
- decodeURIComponent():解序列化的数据
- encodeURIComponent():将数据序列化,serialize()也是调用此方法进行序列化
- serializeArray():表单转化为json形式
- $.ajaxSetup():初始化$.ajax()的数据,用于设定$.ajax()对象的默认值
- 全局方法:$.ajax()
第二层:封装了jQuery的Ajax;
-
- 局部方法:.load(url,data,callback)
- 比较适合静态文件的异步获取
- 全局方法:$.get(url,data,callback,type),$.post(url,data,callback,type)
- 可使用与动态文件异步获取
- 局部方法:.load(url,data,callback)
第三层:封装了get;
-
- 全局方法:$.getJSON,$.getScript
加载请求
$(document).ajaxStart(function):请求开始时,触发的方法
$(document).ajaxStop(function):请求结束时,触发的方法
JSON和JSONP
当dataType为JSON时,无法跨域获取数据,要在添加域名后面添加"?callback="才能实现跨域名调用数据。当dataType为JSONP时,可直接实现跨域获取数据。
JQXHR对象