一、简介
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),允许服务器端与客户端进行少量的数据交换完成客户端的局部刷新,也就是所说的一步请求响应方式。
二、特点
1、 浏览器不会直接将请求输送给服务器,而是委托给服务器内嵌的代理对象,由代理对象代替浏览器向服务器发送请求。
2、 在请求期间,处于等待响应的是代理对象,此时浏览器仍处于可用状态,允许向其他服务器发送资源。
3、 服务器在响应的时候,直接通过I/o响应,将数据传送给代理对象,代理对象的内存中原有数据将会被覆盖,但是此时浏览器的数据没有受到任何影响。
4、 代理对象将接收到的数据交给浏览器中指定的控件上,完成局部刷新。
弊端:增加开发工作量,增加运营成本(带宽等)
三、开发流程:
1、 获得浏览器中的一个闲置的代理对象
var xmlHttp=new XMLHttpRequest();
2、 初始化代理对象
a) 通知代理对象,本次请求的响应方式
b) 本次请求的目的地
c) 本次请求是否需要接受服务器返回的数据
i. True:接受的数据交给代理对象
ii. Flase:接受的数据直接交给浏览器的内存
xmlHttp.open(“get”,”test/count.action?num1=”+param1+”&num2=”+param2,true);
3、 通知代理对象发送请求
xmlHttp.send();
4、 添加一个实时监控,监控代理对象的工作工作状态,根据工作状态决定接受数据的最佳时机
a) 代理对象的五种工作状态
i. readyState=0:得到了一个空闲的代理对象
ii. readyState=1:代理对象已经被初始化完毕
iii. readyState=2:代理对象已经将请求发送到服务器端,此时服务器端正在处理数据
iv. readyState=3:服务器已经处理完毕数据,此时,代理对象已经接收到了对象,代理对象正在编译数据。
v. readyState=4:浏览器正在进行局部刷新,更新数据
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
data=xmlHttp.responseText;
5、 接受到代理对象返回的数据之后,将数据跟新到浏览器中指定的控件上,实现局部刷新功能
Document.getElementById(“sum”).value=data;}}
四、个人感悟
ajax在前端页面的设计中至关重要,ajax为我们带来了同步刷新,这项技术常用于表单中,用户在每次填写完一个表单之后便能够将此表单自动提交,并在不用完全提交网页的情况下实现局部的数据验证,十分有利于大型网页的使用。
五、这里将会写上jquery的ajax