Ajax的工作流程?
答:
1客户端产生JS的事件
2创建XMLHttpRequest对象 varxhr = new XMLHttpRequest();
3对XMLHttpRequest进行配置 xhr.open(“get”,”example.txt”,true);
4)通过Ajax引擎发送异步请求 xhr.send(null);
5)服务器端接收请求并且处理请求,返回html或者xml内容
6)XML调用一个callback()处理响应回来的内容
7)页面局部刷新
拓充:
XHR对象的属性:
1)responseText:作为响应的主体被返回的文本
2)responseXML:如果响应的内容类型是text/xml或者application/xml,这个属性中将保存着响应数据的XML DOM文档
3)status(对应的同步请求):响应的HTTP状态。可取如下几个值:
200:请求成功的标志;
202:接受和处理、但处理未完成;
304:表示请求的资源并没有被修改,可以直接使用浏览器中缓存的版本;
505:服务器不支持或拒绝请求头中指定的HTTP版本
4)statusText:HTTP状态的说明
5)readyState(对应异步请求):表示请求/响应过程的当前活动阶段,属性可取的值如下
0:未初始化。尚未调用open()方法
1:启动。已经调用open()方法,但尚未调用send()方法。
2:发送。已经调用send()方法,但尚未接受到响应。
3:接受。已经接受到部分响应数据。
4:完成。已经接受到全部的响应数据,而且已经可以在客户端使用了。
XHR对象相关的响应事件:
1)readystatechange事件:可以利用这个事件来检测每次状态改变后readyState的值。
2)onreadystatechange事件:必须在调用open()之前指定onreadystatechange事件处理程序才能确保跨浏览器兼容性。
eg: