是不是感觉02中出现了很多新的单词,或者一头雾水,接下来我为大家一句一句解读,大家的不懂的,可以给我留言。
1.先创建Ajax引擎对象
就是创建 XMLHtttpRequest 对象,所有现代浏览器(市面上普遍用的浏览器)均支持XMLHttpRequest对象
(IE5 和 IE6 使用 ActiveXObject)它同时也是一个Javascript对象.
Ajax引擎(XMLHttpRequest)(重要的话写三遍:Ajax的核心XMLHttpRequest)
关于XMLHttoRequest的兼容处理的代码:
var xhr = null;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest; //所有现代浏览器
}else{
xhr = new ActiveXObject("Microsoft.XMLHTTP"); //ie5,ie6(注意大小写)
}
2.配置请求对象的信息
xhr.open('get/post' , 'url地址' , ['是否异步'] );
//open接受3个参数:要发送请求的类型,请求的url,是否异步请求(布尔值表示,ture表示异步,false你懂的)
//注意:如果使用post请求,就一定要设置请求头(关于get和post更详细的说明)
//请求头:xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=gb2312");(固定写法,不用理解,知道就行)
3.发送请求
xhr.send([null]);
发送请求分为两种情况:
1.监控用户的事件(onclick,onchange等),通过ajax发送请求
2.监控浏览器的事件(onload),通过ajax发送请求.
//看不懂这俩句话,没关系,就当我没写,看完后边的,在会多头来理解,掌握发送请求就可以了。
4.监听Ajax引擎对象的改变(是否正确做出了响应)
xhr.onreadystatechange = function(){
//判断事件成与否
if (xhr.readyState== 4 && xxhr.status==200) {
//在这里可以获取服务器返回的数据var result=xhr.responseText;
}else{
var info=document.getElementById("info");
info.innerHTML="服务器数据已收返回";
}
}
onreadystatechange属性是一个方法,监控到响应内容的返回,当readyState状态值改变的时候触发的事件,根据响应内容使用javascript改变当前页面的部分html代码,从而达到不刷新改变局部html代码.
当Ajax引擎的状态发生改变时都会执行onreadystatechange属性对应的方法
status:返回当前请求的http状态码. 200 成功 ;304 缓存;404 not found; 403 没有权限 501 服务器级别错误
statusText:返回当前请求的响应行状态文本, ok、 not、 found 、forbidden
readyState::判断浏览器和服务器进行到哪一步了通过数值来判断
0---(未初始化)还没调用open()方法
1---(载入)已调用send()方法,正在发送请求
2---(载入完成)send()方法完成,已经收到全部响应内容
3---(解析)正在解析响应内容
4---(完成)响应内容解析完成,可以在客户端调用了
当Ajax引擎的状态属性为readyState为4时,说明服务器的响应已经发送给Ajax请求了.
但是响应的状态吗为200时:说明响应的内容是正确的,这时才会根据相应内容对当前页面的html处理
responseText:ajax请求返回的内容被存放到这个属性下面