引自http://www.cnblogs.com/xionglee/articles/1499209.html

通常,在我的ASP.NET程序中,我通常这样创建XHR对象:

 XMLHttpRequest();
    }
}
   从上面我们可以知道,目前主要针对浏览器内核的不同,采取不同的方式创建XHR对象。

      对于IE浏览器,Microsoft 浏览器 Internet Explorer 使用 MSXML 解析器处理 XML。因此如果编写的 Ajax 应用程序要和 Internet Explorer 打交道,那么必须用一种特殊的方式创建对象。方法如下:

在Ajax应用中创建万能的XmlHttpRequest对象
在Ajax应用中创建万能的XmlHttpRequest对象var xmlHttp = false;
在Ajax应用中创建万能的XmlHttpRequest对象
   而对于非IE内核浏览器,需要使用不同的代码。事实上就是如下所示的简单代码:
      var xmlHttp = new XMLHttpRequest();
      这行简单得多的代码在 Mozilla、Firefox、Safari、Opera 以及基本上所有以任何形式或方式支持 Ajax 的非 Microsoft 浏览器中,创建了 XMLHttpRequest 对象。
      后 来发现,我这个写法是最基础的,而XMLHTTP组件这几年又随着OS的更新而不断升级,推出了很多新的版本。在我的TopMapTest项目中,我找到 我原来用过的一个xmlextra.js封装的脚本库发现,在这个功能类中,也提供了对不同浏览器创建XHR对象的扩展,其内容为:
}

      在上面的getXmlHttpPrefix()方法中,我们发现["MSXML2", "Microsoft", "MSXML", "MSXML3"];所指定的4个前缀,在创建IE浏览器支持的XHR对象时,提供了不同的创建方法。但如果要在代码中,换一种方式来写,应该如何写呢? 这几种前缀+".XMLHttp"所创建的对象分别有什么区别呢?所以在网上查了一下,关于这方面的内容还蛮多,特将部分内容记录:

片断1:

 

片断2:

      上面两个代码基本写法类似,都是通过调用较高版本的XMLHTTP对象,按顺序创建较高版本的XMLHTTP对象。在我们使用 XMLHTTP时,要优先使用较高版本的XHR对象,现在已经升级到5.0版本了new ActiveXObject("Msxml2.XMLHTTP.5.0")。

      至于究竟这些不同版本的XMLHTTP对象有何区别,我们可以参考以下文章:

      http://eric-2007.javaeye.com/blog/338731

相关文章: