Ajax类库需要注意的问题
构建Ajax类库时,注意四步就可以了:
1:创建Ajax 对象
2:链接服务器
3:发送请求
4:返回响应
下面是我自己写的一个Ajax类库:
function ajax(url,fnn,fai)
{
//1:创建ajax对象
var oAjax=null;
if(window.XMLHttpRequest)----这里由于没有XMLHttpRequest这个东西,所以会报错,但加上window后,相当于window的一个属性。
{
oAjax=new XMLHttpRequest();
}
else
{
oAjax=new ActiveXObject("Microsoft.XMLHTTP");
}
//2:链接服务器open(方法,URL,是否异步)
oAjax.open('GET',url,true);
//3:发送请求
oAjax.send();
//4:接受返回
oAjax.onreadystatechange=function()
{
if(oAjax.readyState==4)
{
if(oAjax.status==200)
{
fnn(oAjax.responseText);
}
else
{
if(fai)
{
fai();
}
}
}
};
需要注意一下浏览器的问题:
IE6以上:
XMLHttpRequest() 来创建Ajax对象
IE6:
ActiveXObject("Microsoft.XMLHTTP")来创建对象
2:Ajax请求状态控制有以下集中情况:
onreadystatechange事件
–readyState属性:请求状态
»0 (未初始化)还没有调用open()方法
»1 (载入)已调用send()方法,正在发送请求
»2 (载入完成)send()方法完成,已收到全部响应内容
»3 (解析)正在解析响应内容
»4 (完成)响应内容解析完成,可以在客户端调用了
–status属性:请求结果
–responseText:即返回URL中的结果。
3:Ajax的核心是XMLHttpRequest()对象,即XHR。
XHR作用:无须刷新页面即可从服务器取得数据,不一定是XML数据。