作用:
Ajax可以异步处理网页请求,在用户键入数据时,部分提交数据而不需要刷新整个网页,用来提高用户体验度以及满足实时数据接收的需求。
实现步骤:
1.获取Ajax对象
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest){//针对其他浏览器
xhr = new XMLHttpRequest();
}else{//针对低版本的ie浏览器
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
return xhr;
}
2.创建请求:open(‘提交方式’,{},提交地址)
//地址上可以拼接提交的数据
xhr.open("get","/home");
3.设置监听事件:监听请求的状态
因为Ajax的readyState代表请求的状态,使用不同的数字代表一个状态:
-
0:还没有调用send()方法
-
1:已经调用send(),正在发送请求
-
2:send()调用完成,已接收全部响应内容
-
3:正在解析响应内容
-
4:响应内容解析完毕,可以在客户端获取并使用了
状态并不能保证回来的数据就是我们想要的数据,也可能是发回的错误提示。所以要想保证接受到的数据就是成功响应的数据,还需添加对另一个属性的判断(status)。这个属性代码响应的状态码,200代表成功,404代表没有找到资源,500代表服务器发生了运行异常;
所以我们只需要判断请求状态和响应状态是否正确再进行处理数据。
xhr.onreadystatechange = function(){
if (xhr.readyState == 4 && xhr.status == 200) {
响应成功之后的处理代码。
}
}
}
4.发送请求
//一定要记得发送请求。不然数据不会提交。顺序可改
xhr.send();
这样就实现了异步请求。