简介
Ajax,是 Asynchronous JavaScript + XML 的简写。指一种创建交互式网页应用的网页开发的技术。
通过异步模式,提升了用户体验。优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用。Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大量用户下的服务器负载。
Ajax最大的特点就是局部刷新。
Ajax 技术核心是 XMLHttpRequest 对象(简称 XHR)
是指一种创建交互式网页应用的网页开发技术
AJAX 可以使网页实现异步更新
可以调用xml、json、php等外部数据
没有平台限制**
创建Ajax对象
new XMLHttpRequest();
new ActiveXObject(‘Microsoft.XMLHTTP’) //IE6
open()
xhr.open(‘get’, ‘demo.php’, true); //对于 demo.php 的 get 请求,false 同步
三个参数: 要发送的请求类型 (get 、post)、请求的 URL 和表示是否异步
Post:xhr.setRequestHeader(“Content-type”, “application/x-www-form-urlencoded”); xhr.send(data);
发送请求 send()
接收服务器返回的信息 onreadystatechange
readyState
0 请求未初始化 1 服务器连接己建立
2 请求已接收 3 处理请求,响应中
4 响应就绪
status HTTP 状态码
常见状态码
200 - 请求成功
301 -Moved Permanently 资源(网页等)被永久转移到其它URL
304 -Not Modified 使用缓存文档
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误
状态码分类
1信息,服务器收到请求,需要请求者继续执行操作 2成功,操作被成功接收并处理
3重定向,需要进一步的操作以完成请求 4客户端错误,请求包含语法错误或无法完成请求
5服务器错误,服务器在处理请求的过程中发生了错误
封装ajax
function ajax(obj){
var str = "";
for(var i in obj.data){
str+=i+"="+obj.data[i]+"&";
}
str = str.replace(/&$/,"");
if(window.XMLHttpRequest){
var xhr = new XMLHttpRequest();
}else{
var xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
if(obj.type.toUpperCase()==="GET"){
if(str==""){
xhr.open("GET",obj.url,true);
}else{
xhr.open("GET",obj.url+"?"+str,true);
}
xhr.send();
}
if(obj.type.toUpperCase()==="POST"){
xhr.open("POST",obj.url,true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(str);
}
xhr.onreadystatechange = function(){
if(xhr.readyState==4){
if(xhr.status==200){
var data = xhr.responseText;
obj.cb(data);
}
}
}
}