Js异步编程与Ajax

     ajax, asynchronous javascript +xml,这项技术能够向服务器请求额外的数据而不用卸载页面。核心是 xmlhttprequest(xhr)对象,xhr为向服务器发送请求和解析服务器相应提供了接口,也就是说你点击了按钮,解析服务器返回的报文,不用刷新页面就能利用dom将新数据插到页面中。

     ie5是第一个引用xhr对象的浏览器,但是他是通过MSXML库中的一个ActiveX对象实现的,因此要使用他

//适用于ie7之前的版本

function createXHR()

{

   if(typeof arguments.callee.activeXString !="string")

   {

             var versions=[ "MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"],i,len;

             for(i=0,len=versions.length;i<len;i++)

     {

                     try

                          {

                            new ActiveXOjbect(versions[i]);

                            break;

         }

                       catch(ex)

                      {}

               }

    }

      return  new ActiveXObject(arguments.callee.activeXString);

}

ie7+ firefox opera chrome safari都支持原生的xhr对象,所以直接下面写:

var xhr=new XmlHttpRequest();综合:

function createXHR()

{

if(typeof XmlHttpRequest!="undefined")

{return  new XmlHttpRequest();}

else if( typeof ActiveXObject !="undefined")

{

   if(typeof arguments.callee.activeXString !="string")

   {

             var versions=[ "MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"],i,len;

             for(i=0,len=versions.length;i<len;i++)

     {

                     try

                          {

                            new ActiveXOjbect(versions[i]);

                            break;

         }

                       catch(ex)

                      {}

               }

    }

      return  new ActiveXObject(arguments.callee.activeXString);

  }

else

{ throw new Error("No xhr available");}

}

原文地址:https://www.cnblogs.com/renpeng/p/5024699.html