都知道实现页面的异步操作需要使用Ajax,那么Ajax到是怎么实现异步操作的呢?
首先需要认识一个对象 --> XMLHttpRequest 对象 --> Ajax的核心。它有许多的属性和方法事件以便于脚本处理和控制HTTP的请求和响应。
下面来认识几个属性:我不用官方的话来解释,希望大家能一看就知道是什么意思
readyState 属性
创建XMLHttpRequest对象(下面称ajax对象)后,readyState属性则表示当前对象处于一个什么状态 ,一共5个状态
0 未初始化状态 ,ajax对象已经创建
1 准备发送状态,调用了open()方法,并且已经准备好将一个请求发送到服务器
2 已发送状态, 已经通过send()方法把一个请求发送到服务器,但是没有收到一个响应
3 正在接受状态,已经接收到HTTP的响应头部信息,但是消息体还没有还没有完全接收
4 完成响应状态,已经完成HttpResponse的响应接收
status 属性:
描述了HTTP状态代码,当readyState值小于3时 不可读取,会引发异常错误
下面是Ajax的封装代码,我们来逐步分析,以便于理解
View Code
1 .一个json2Url格式的方法
调用ajax()时里面是以json的形式传数据,但是我们的url是这样的
https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=&json=1&p=3&sid=1464_21105_18560_17001_;
所以我们需要把格式转换这样才能提交,由于ie存在缓存所以需要加一个随机数,encodeURICompon

