ajax (Asynchronous JavaScript and XML) 异步Javascript和XML
用javascript异步形式去操作XML(ajax是javascript的一个内置对象,用来请求数据)
无刷新页面的情况下,获得数据,通过Ajax对象发送请求(可加载某一片段数据)、
使用Ajax调用数据的步骤
1.创建一个ajax对象,对象名字是XMLHttpRequest();
var xhr = new XMLHttpRequest();
(IE7以下不支持此方法,使用ActiveXObject('Microsoft.XMLHTTP')创建对象)
//兼容性写法一
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else{
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
//兼容性写法2
try{
xhr = new XMLHttpRequest();
}catch(e){
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
2.利用Ajax函数自带的属性和方法去调用数据(请求数据)
xhr.open('get','1.php'.true);
xhr.send(); //发送请求
open(打开方式(get,post),地址(发送请求的地址),是否异步(true,false))
false同步:阻塞,前面代码会影响后面代码的执行,当后续的代码需要前面的代码的时候使用同步。
true异步:非阻塞,前面代码不会影响后面代码的执行。
3.数据获取
xhr.onreadystatechange = function(){ if(xhr.readyState == 4){
if(xhr.status == 200){
alert(xhr.responseText);
}else{
alert('出错了,Err:'+xhr.status);
}
} }
onreadystatechange事件: 当状态值readyState发生改变时触发
readyState: ajax请求状态。
0:初始化看,还没有调用open()方法
1:(载入)已调用send()方法,正在发送请求
2:(载入完成)send()方法完成,已收到全部响应内容
3:(解析)正在解析响应内容
4:(完成)响应内容解析完成,可以在客户端调用
返回的内容:
responseText: 返回以文本形式存放的内容,字符串类型
responseXML: 返回XML形式的内容
服务器请求资源的状态:
status: 服务器返回的状态值(200成功,404失败)