zoukankan      html  css  js  c++  java
  • AjaxPro的原理简单说明

    //鉴于很多网友在问AjaxPro的工作原理简单说明,就写了这份js,希望对初学者有点帮助,没有测试过,只是解释了Ajax得原理
    //我也是接触js和Ajax时间不长,错误之处多多指正,同时欢迎大家多到 http://www.shareach.com灌水
    //执行步骤是:
    //   调用callAjaxMethod:
    //        url:正常得URL,如:http://www.shareach.com/test1.aspx?id=2
    //        callbackFunc:异步方式调用后回调得函数,这个函数需要你自己写,如function MyCallBack(res){..}
    //        说明:callAjaxMethod会衣次执行 AjaxObject、CreateXMLHttpRequest、CallServer,最后等待OnRecvCallback发生
    //  作者:Shareach站长
    //  网址:http://www.shareach.com
    /***************************************************************************/
    function callAjaxMethod(url,callbackFunc)
    {
        var oAjax=AjaxObject(url,callbackFunc);
        oAjax.URL = url;
        oAjax.callBackFunc = callbackFunc;
        oAjax.CallServer();
    }


    //创建对象
    function AjaxObject()
    {
        this.XMLReq = this.CreateXMLHttpRequest();
        this.URL = "";
        this.callBackFunc = null;
        this.Base = this;
    }

    //第一步、创建HttpRequest对象
    AjaxObject.prototype.CreateXMLHttpRequest=function() 

        var oXMLHttpRequest = false;
        if (window.XMLHttpRequest) 
        {//创建 XMLHttpRequest对象,非IE
            oXMLHttpRequest = new XMLHttpRequest();  
        }else if (window.ActiveXObject) 
        {// 如果是IE,就以Active方式创建
            try {//创建最新版本得对象      
                oXMLHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");    
            } catch (e1) 
            { 
                try {//尝试老版本
                    oXMLHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e2) {}//创建不起来就是失败                
            } 
        }
        return oXMLHttpRequest;


    //第二步发送请求
    //url就是正常得URL,如:http://www.shareach.com/test1.aspx?id=2
    CreateXMLHttpRequest.prototype.CallServer = function() {
        if (!(Base.XMLReq))//没有创建成功XMLHttpRequest
            return;
      //链接服务器
      Base.XMLReq.open("GET", Base.URL, true);
      //等待接受信息
      Base.XMLReq.onreadystatechange = OnRecvCallback;
      // Send the request
      Base.XMLReq.send(null);
    }

    //第三步,等待信息到达
    CreateXMLHttpRequest.prototype.OnRecvCallback = function() {
      if (Base.XMLReq.readyState == 4) {
        var response = Base.XMLReq.responseText;
        //执行回调
        Base.callBackFunc(response);
      }
    }
  • 相关阅读:
    Python学习之==>第三方模块的安装、模块导入
    Python学习之==>json处理
    Python学习之==>内置函数、列表生成式、三元表达式
    Python学习之==>函数
    Python学习之==>文件操作
    Python学习之==>集合
    函数,递归,内置函数
    python流程控制
    python文件处理
    Python基础之数据类型
  • 原文地址:https://www.cnblogs.com/yinpengxiang/p/463060.html
Copyright © 2011-2022 走看看