首先ajax是Asynchronous JavaScript and XML的全称,Asynchronous是异步的意思,这跟传统的web不同。
什么是同步什么是异步?
同步,是发送方发送数据之后,必须等接收方接收数据必须做出回应之后,才可以进行下一步。
异步的话则是发送方发送数据之后不需等接收方做出回应,可以进行下一步操作。
举个形象的例子,同步就像A叫B去吃饭,A发出邀请,要B一起吃饭,此时必须等B做出回应,吃或者不吃,A才决定是一个人吃还是等B一起去;而异步的话就像是下班了,A跟B说A要去吃饭了,然后走了,不管B是否做任何回应。
Ajax原理
简单来说,就是通过XMLHttpRequest对象像服务器发送异步请求,从服务器获取数据之后,再通过JS来操作DOM节点。
XMLHttpRequest对象
方法:
1.open(请求类型,url,布尔值)
2.send()参数为作为请求主体发送的数据,如果不需要请求主体发送数据,则传入null
3.abort()取消异步请求
4.getAllResponseHeaders()把HTTP请求的所有响应首部作为键/值对返回
5.getResponseHeader("header")返回指定首部的串值
6.setRequestHeader("header", "value")把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()。设置header并和请求一起发送 ('post'方法一定要 )
常用属性
1.readyState 表示请求/响应过程的当前活动阶段(0:未初始化,尚未调用open方法;1:启动,已调用open方法,未调用send方法;2:发送:已调用send,未接到响应;3:接收,已经接收部分响应数据;4.完成,可以在客户端使用)
2.onreadystatechange readyState的值改变一次就会调用一次这个方法
3.responseText 作为响应主体被返回的文本
4.responseXML 保存响应类型为“text/xml”或"application/xml"的响应数据的XML DOM文档
5.status 响应的HTTP状态
6.statusText Http状态的说明