ajax学习笔记之二

对代码进行一下优化如下:

window.onload=initAll;//页面加载是调用
var xhr = false;//先定义为flase
//加载函数
function initAll(){
    if(window.XMLHttpRequest){//判断浏览器是否支持XMLHttpRequest,如果支持则创建对象
    xhr= new XMLHttpRequest;
    }else{
        if(window.ActiveXObject){//如果不支持则判断时候支持ActiveXObject(为IE早期浏览器内置引擎对象)
            try{
            xhr = new ActiveXObject("Microsoft.XMLHTTP");//创建对象
            }catch(e){}
        }

    }
   
    if(xhr){ //判断如果对象存在
    getPix();//调用getPix()函数
    }
    else{
        alert("Sorry,but I could‘t creat an XMLHttpRequest");//否则,弹出对话框提示不能创建引擎对象
    }

}
function getPix(){
    xhr.open("GET/POST","URL地址","true/fasle");//打开open函数
    xhr.onreadystatechange = showPictures;//状态变化判断
    xhr.end(null);//发送参数(get为null,post先设置requesthead)
    setTimeout(getPix,5*1000);//每5S调用一次函数
}
function showPictures(){
    var tempText = doucument.createElement("div");//创建一个div
    if(xhr.readyState = 4){//判断状态是否为4
        if(xhr.status = 200){
        var allImages  = xhr.responsXML.getElementsByTagName("content");//处理结果
        }
    }else{
        alert("There was a problem with the request"+xhr.status)
    }

}


需要注意的地方

虽然微软的IE(5.5,6)支持XMLHttpRequest,但是没有这个对象的本机版本,在这种情况下,必须检查浏览器是否支持ActiveX。如果支持的话,就检查是否能根据ActiveX创建XMLHttpRequest对象(try、catch进行异常处理)。

每当xhr.readyStatue属相值发生变化时,就会触发xhr.onreadystatuechange这个处理程序从


readyState属性值

0----------------未初始化

1---------------正在加载

2----------------已经加载

3----------------交互式的,未加载完也可以进行交互

4----------------完成


状态码200代表一切正常,404请求文件不存在


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。