【JavaScript】——原生Ajax

编写原生Ajax的过程,和打电话的过程有点类似。我们可以类比一下。

打电话的过程:

  1. 拥有一个电话;
  2. 拨号;
  3. 自己说;
  4. 听别人说。

Ajax的过程:

  1. 创建Ajax对象;
  2. 连接服务器;
  3. 发送请求;
  4. 接受返回值。
function ajax(url, fnSucc, fnFiled){
    if(window.XMLHttpRequest){  //1.用没有定义的变量(如:a),报错;2.用没有定义的属性(如:window.a),undefined
        var oAjax = new XMLHttpRequest();   //非IE6
    }else{
        var oAjax = new ActiveXObject("Microsoft.XMLHTTP"); //IE6
    }

    //连接服务器
    //open(方式,url, 异步传输)
    oAjax.open('get', url, true);

    //发送请求
    oAjax.send();

    //接受请求
    //当网络状态改变的时候
    oAjax.onreadystatechange = function(){  //每当 readyState 改变时,就会触发 onreadystatechange 事件
        if(oAjax.readyState==4){    // readyState 状态值:网络状态,浏览器和服务器进行到哪一步了
            if(oAjax.status==200){  //状态码:http状态,说到404就知道了
                fnSucc(oAjax.responseText);
            }else{
                if(fnFiled){
                    fnFiled(oAjax.status);
                }
            }
        }
    }
}

readyState状态值:

0 (未初始化)还没有调用open方法
1 (载入)以调用send方法,正在发送请求
2 (载入完成)send方法完成,已收到全部响应内容
3 (解析)正在解析响应内容
4 (完成)响应内容解析完成,可以在客户端调用了




猜你喜欢

转载自www.cnblogs.com/sanyi2019/p/10364085.html