AJAX的核心是其事件处理函数,其典型过程如下:
1.初始化 XMLHttpRequest对象
2. 指定回调函数,即设定 XMLHttpRequest对象的onreadystatechange属性
3.创建http请求,即调用 XMLHttpRequest对象的open()方法
4.设置http请求头,即调用 XMLHttpRequest对象的setResourceHeader方法
5.发送http请求,即调用 XMLHttpRequest对象的send()方法
当open()的asynchoronize参数设定为true(也就是默认值)时,当readystate的值发生改变时,就会将控制转交给回调函数处理。
回调函数可以分为请求处理函数和业务处理函数。前者判断http请求头,并做必要的异常处理;后者分析并加工相应的数据,根据既定业务需求更新页面内容。
回调函数的一般过程:
1.判断http请求的状态,并做相应的处理
仅当 readystate==4&&status==200 时,才可返回相应的属性
2.处理返回的responseText或responseXML,可以做主要两类处理:
(1 ) 处理解析XML并存储于客户端的JS领域模型对象中
(2) 处理的数据存储于缓存数组中
3.调用业务处理函数,解析DOM,定位节点,更新页面
因此,整个页面的AJAX的过程如下:
1.初始化页面
2.对页面操作,触发元素的事件处理函数
3.元素的事件处理函数调用AJAX事件处理函数,同时传给AJAX事件处理函数必要的发给服务器端的参数数据
4.AJAX事件处理函数创建XMLHttpRequest对象,发送http请求,接收请求,必要时将控制权交由回调函数
5.请求处理函数:判断http请求
6.业务处理函数,更新到视图
以下的时序图完整诠释了以上描述的繁琐过程:
