Ajax全称:Asynchronous JavaScript and XML(异步的javascript和XML)
是一种在无需加载整个网页的情况下能够更新部分网页的技术。
传统的网页(即不实使用Ajax的网页)若想要更新内容或者提交一个表单需要重新加载页面。使用Ajax可以在后台进行少量的数据交换,网页实现局部的更新。
1、ajax——同步和异步
同步:一个请求发出后只有将这个请求处理完成响应后载入页面才能发起另一个请求进行处理,即程序在同一时刻只能处理一个请求。
异步:一个请求发起处理的过程中可以发起并处理另外一个请求,即程序在同一时刻能处理多个请求。和web服务器对数据进行异步交换通过XMLHttpRequest对象来实现,XMLHttpRequest是Ajax的核心。
2、ajax——XMLHttpRequest对象创建
var xhr=new XMLHttpRequest();
XMLHttpRequest,IE7以前的不支持;
兼容性方法:
if(window.XMLHttpRequest){
request=new XMLHttpRequest();
}else{
request=new ActiveXObject(“Microsoft.XMLHTTP”);
}
3、ajax——HTTP请求
什么是http:计算机通过网络通信的规则,http是一种无状态的协议(即不建立持久的连接,服务端不会保留连接的相关信息,)。
一个完整的http请求过程(7个步骤):
1、建立TCP连接
2、web浏览器向web服务器发送请求命令
3、web浏览器发送请求头信息
4、web服务器应答
5、web服务器发送应答头信息
6、web服务器向浏览器发送数据
7、web服务器关闭TCP连接
一个HTTP请求一般由四部分组成:
1、HTTP请求的方法或动作,比如是GET还是POST请求
请求的方法——GET
一般用于信息获取(所以安全的,幂等的),使用URL传递参数(变量是公开可见 的)对所发信息数量也有限制,一般2000个字符
请求的方法——POST
一般用于修改服务器上的资源(增、删、改、),发送的数据不再URL中显示,对 其他人不可见,会被嵌入http请求的请求体中,对发送信息的数量无限制
2、正在请求的URL,总得知道请求的地址是什么吧
3、请求头,包含一些客户端环境信息,身份验证信息等。
4、请求体,也就是请求正文,请求正文中可以包含客户提交的查询字符串信息,表单信息等等。
eg:一个典型的请求
一个HTTP响应一般由三部分组成:
1、一个数字和文字组成的状态码,用来显示请求是成功还是失败
2、响应头,响应头也和请求头一样包含许多有用的信息,例如服务器类型、日期类型、内容类型和长度等。
3、响应体,也就是响应正文(字符串、html代码)。
eg:一个典型的响应
注:缺少了响应体
http的状态码status
4、ajax——XMLHttpRequest发送请求
使用的方法
open(method,url,async),说明请求的类型,URL,是否为异步(默认是ture,异步)
send(string),向服务器发送请求,使用POST请求时参数填要发送的内容,GET请求可不填或null
eg:
当发送的内容是表单形式的时候(键值对类型的数据),需要添加
setRequestHeader(”Content-type”,”application/x-www-form-urlencoded”);
在open()和send()方法中间。
5、ajax——XMLHttpRequest取得响应
responseText:获得字符串形式的响应数据
respnseXML:获得xml形式的响应数据
status和statusText:以数字和文本形式返回http状态码
getAllResponseHeader():获取所有的响应报头
get ResponseHeader():查询响应中的某个字段的值
readyState:用于监听判断响应是否完成、成功,可能值有:
0:请求初始化,open还没有调用
1:服务器连接已建立,open已经调用了
2:请求已接收,也就是接受到头信息了
3:请求处理中,也就是接收到响应主体了
4:请求已完成,且响应已就绪,也就是响应完成了
Onreadystatechange事件,readyState的值发生变化的时候就会被触发,用于监听服务器响应