客户端程序编写免不了经常接触XMLHttpRequest对象。
微软的XHR实现的progid又是一串一串的。 烦人。抽一个中午时间,找了找资料,整理记录如下:
"Microsoft.XMLHTTP"
最早的XHR实现。微软官网上说这是MSXML 2.x系列版本的progid。
2.x 系列progid是不带版本号的。看起来简单清楚。
引用:
MSXML 2.6 was shipped with SQL Server 2000 and MDAC 2.6 and is provided in Windows or other service pack updates provided by Microsoft.
MSXML 2.6 installs in replace mode only.
"MSXML2.XMLHTTP"
MSXML 3.0 的progid,
"MSXML2.XMLHTTP.3.0"
也是MSXML 3.0 的,应该等价于MSXML2.XMLHTTP;这时,可能是感觉到那种不带版本号的progid,在升级后造成的兼容性问题,以后的更新版本的progid都可以带上版本好吗。
引用:
MSXML 3.0 is provided as a required component with a number of Microsoft products, such as Microsoft Visual Studio and Microsoft Office. It is also a system component for current versions of Microsoft Windows.
MSXML 3.0 SP2 or later installs in replace mode only. (Note: you do not need to run xmlinst.exe utility when updating to this version of MSXML 3.0)
"Msxml2.XMLHTTP.4.0"
此后的版本,都带上了版本号码,可能是为了应对程序员懒散的习惯(不喜欢带那个版本号),不提供以前那种无版本后缀的progid了。
引用:
MSXML 4.0 is a separate download that was released by Microsoft in October 2001. The latest or current service pack release of MSXML 4.0 is available through the Microsoft Web site. MSXML 4.0 must be installed separately and is not currently included with other Microsoft products.
MSXML 4.0 installs side-by-side with earlier versions of MSXML without affecting any existing functionality.
“Msxml2.XMLHTTP.5.0"
引用:
MSXML 5.0 for Microsoft Office Applications is only available with current versions of Microsoft Office.
MSXML 5.0 for Microsoft Office Applications installs side-by-side with earlier versions of MSXML without affecting any existing functionality.
"Msxml2.XMLHTTP.6.0"
引用:
MSXML 6.0 is a separate download that was released by Microsoft in November 2005. The latest or current service pack release of MSXML 6.0 is available through the Microsoft Web site. MSXML 6.0 must be installed separately. It is included with SQL Server 2005.
MSXML 6.0 installs side-by-side with earlier versions of MSXML without affecting any existing functionality.
这么多的实现,哪我们如何探测呢?一般来说,我们应该尽量采用更新的更常用的版本。
我的选择是(摘自
JSI内核源码)::
js 代码
- if(this.ActiveXObject && !this.XMLHttpRequest ){
- var xmlHttpRequstActiveIds = [
- "Microsoft.XMLHTTP"
- ,"MSXML2.XMLHTTP"
-
-
- ,"Msxml2.XMLHTTP.5.0"
-
- ];
- var xmlHttpRequstActiveId
- this.XMLHttpRequest = function(){
- if(xmlHttpRequstActiveId){
- return new ActiveXObject(xmlHttpRequstActiveId);
- }else{
- var i=xmlHttpRequstActiveIds.length;
- while(i --){
- try{
- var impl = new ActiveXObject(xmlHttpRequstActiveId = xmlHttpRequstActiveIds[i]);
- xmlHttpRequstActiveIds = null;
- return impl;
- }catch (e){}
- }
- }
- };
- }
参考:
http://msdn2.microsoft.com/en-us/library/ms762757(VS.85).aspx
http://msdn2.microsoft.com/en-us/library/ms761415(VS.85).aspx
分享到:
相关推荐
本文将深入探讨ActiveObject中的一个关键对象——Msxml2.DOMDocument,以及它在ASP.NET AJAX WebService中的应用。 Msxml2.DOMDocument是Microsoft XML库(MSXML)中的核心组件,它实现了W3C的Document Object ...
MSXML 4.0 SP2(Service Pack 2)是该系列的一个重要版本,包含了重要的更新、性能优化和安全改进。 MSXML 4.0 SP2解析器是XML处理的核心组件,负责读取、解析和验证XML文档。这个服务包主要关注以下几个方面: 1....
1. 引入库:在C++代码中,你需要包含必要的头文件,例如`#include <msxml2/msxml2.h>`,并使用`using namespace msxml2;`来引用MSXML2的命名空间。 2. 初始化COM:在使用MSXML2之前,需要初始化COM库,通过调用`...
MSXML 4.0 SP2(Service Pack 2)是该系列的一个特定版本,包含了重要的更新和性能优化。SDK(Software Development Kit)则是一套为开发人员提供的工具、文档和技术支持,帮助他们利用MSXML 4.0 SP2进行XML应用程序...
MSXML2.dll可以直接引用的dll文件
msxml2.dll 纯文件下载
inline void linefeed(MSXML2::IXMLDOMDocument2Ptr pXMLDoc, MSXML2::IXMLDOMNode *pRootNode) { pRootNode->appendChild(pXMLDoc->createTextNode("\n")); } inline void addTextElement(MSXML2::...
MSXML 4.0 SP2(Service Pack 2)是该组件的一个更新版本,旨在提高性能、稳定性以及安全性。这个服务包包含了对之前版本的修复和改进,对于使用XML技术进行开发的程序员来说至关重要。 **XML 技术基础** XML...
win7中vfp软件安装后出现 0: 找不到MSXML2.DOMDOCUMENT.4.0类定义,此中是Dll文件下载,直接放在c:\windows\system目录下即可!msxml4.cab
2. **稳定性**:服务包还增强了软件的稳定性和兼容性,解决了用户在使用MSXML 4.0时可能遇到的问题,确保了更流畅的应用体验。 3. **性能提升**:通过优化内部算法和数据处理,SP3可能提高了XML文档的解析速度,...
今天需要这个东西,在网上找了好久才找到,发这里方便供有需要的朋友。
MsXml2.lib 操作 XML 文件 必须的 lib
再运行测试createobject("msxml2.serverxmlhttp.5.0")通过即msxml5安装正确。 msxml5.dll和msxml5r.dll是office提供的。 5.0 (office 2003) msxml5.dll、msxml5r.dll (5.0.2916.0)(最后一个 dll 是纯资源 dll)...
MSXML6的目的是为现有用户MSXML3和MSXML4用户的升级路径,充分利用旧的ProgID 技术在一些MSXML3和MSXML4。 微软的xml语言解析器,用来解释xml语言的。就好像html文本下载到本地,浏览器会检查html的语法,解释html...
2. **XSLT转换**: MsXML4支持XSLT(Extensible Stylesheet Language Transformations),可以将XML文档转换为其他格式,如HTML、XML或者文本。 3. **XPath查询**: 提供了XPath API,使得开发者可以通过路径表达式来...
2. **使用说明.txt**:这个文件很可能是包含有关如何使用修复工具的指南,包括可能的步骤、注意事项以及常见问题解答。在开始修复过程前,用户应仔细阅读这份文件,以了解如何正确、安全地执行修复操作。 MSXML在...
《Msxml2.XMLHTTP 中文参考手册.chm》 《Msxml2.ServerXMLHTTP 中文参考手册.chm》 Msxml2.ServerXMLHTTP 对象 Member 成员 以下表格显示了ServerXMLHTTP对象的属性、方法、事件。 Properties 属性 responseBody ...
1. **XML解析器**:MSXML提供了几种不同的解析器,如MSXML2.DOMDocument、MSXML2.FreeThreadedDOMDocument等,它们能够加载XML文档并构建一个DOM(Document Object Model)树。DOM是一种将XML文档结构化为节点树的...
这两个文件在VC++(Visual C++)编程环境中用于支持XML处理,使开发者能够直接在代码中调用MSXML2库中的函数和接口,从而实现对XML文档的操作。 MSXML是微软提供的一个API,它允许开发者在各种应用中解析、创建和...