ajax其实只是一种技术而已,不要被其名字所欺骗。只要能实现客服端在无刷新的情况下与服务器端交换数据,都能叫做ajax。
ajax很早就存在,他的实现方法各不相同,但大多数都比较繁琐且不统一。后来意识到这种技术的必要性时,人们开始进行这
项技术的统一和简单化。所以出现了XmlHttpRequset对象,通过该对象可以方便的实现ajax。要想深刻理解ajax就必须要了解
http协议,http协议是ajax技术的基础,ajax抽象了http使我们更容易使用。大致来说,xhr(XML http request)对象有几个比较
重要的属性和方法,其中重要的属性包括readystat、responsetext、responsexml等,其重要的方法包括open,send(),
getallresponseheaders等。还有一个比较重要的也是核心的属性是readystatechange,他是在readystat状态改变时会触发的一个
事件处理函数。readystat代表的xhr的不同状态,下面一一说明:
0 (未初始化) | 对象已建立,但是尚未初始化(尚未调用open方法) |
1 (初始化) | 对象已建立,尚未调用send方法 |
2 (发送数据) | send方法已调用,但是当前的状态及http头未知 |
3 (数据传送中) | 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误, |
4 (完成) | 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据 |
其中4是我们经常用到的一个状态,在数据接收完毕后,我们可以对获得数据进行处理。
每当状态发生改变,readystatechange函数就会被调用。从而可以让我们对xhr对象进行管理。
版权声明:本文为maobushigou原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。