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);
      }
    }
  • 相关阅读:
    H5性能优化
    【JavaScript 】for 循环进化史
    (四十四)通过系统Gallery获取图片
    (四十三)获取图片exif信息
    (四十二)、加载大分辨率图片到内存
    (九)JAVA设计模式之单例模式
    (四十一)Activity切换动画
    (四十)android在代码中,如何设置自定义对话框在屏幕中的位置和大小
    (三十九)android动画 Animation四大属性 详解(转载:http://www.android100.org/html/201304/25/2295.html)
    (三十八)android:windowSoftInputMode属性详解
  • 原文地址:https://www.cnblogs.com/yinpengxiang/p/463060.html
Copyright © 2011-2022 走看看