admin管理员组文章数量:1530517
2024年6月25日发(作者:)
浏览器中操作XML文档
1. 环境描述
常见浏览器类型:IE、FireFox、Chrome、Safari、Opera
XML解析器:浏览器中一般都以插件或本地实现的方式包含了一种XML parser。
浏览器中操作XML的主要编程语言:JavaScript(ECMAScript),浏览器都自带了JavaScript
的引擎。
操作XML的编程接口:JavaScript中实现了DOM的编程接口。
1.1 浏览器内核:
1.1.1 Trident内核(IE 内核)
Trident内核是IE浏览器使用的内核,该内核程序在1997年的IE4中首次被采用,是微
软在Mosaic代码的基础之上修改而来的,并沿用到目前的IE10。Trident实际上是一款开放
的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现(如:
360浏览器、Maxthon、The World、TT、GreenBrowser、AvantBrowser等)。此外,为了方便
也有很多人直接简称其为IE内核。
由于IE本身的“垄断性”而使得Trident内核的长期一家独大,微软很长时间都并没有
更新Trident内核,这导致了两个后果:一是Trident内核曾经几乎与W3C标准脱节(2005
年),二是Trident内核的大量 Bug等安全性问题没有得到及时解决,然后加上一些致力于
开源的开发者和一些学者们公开自己认为IE浏览器不安全的观点,也有很多用户转向了其
他浏览器,Firefox和Opera就是这个时候兴起的。非Trident内核浏览器的市场占有率大幅
提高也致使许多网页开发人员开始注意网页标准和非IE浏览器的浏览效果问题。
IE浏览器中的JavaScript被称为JScript,虽然早年JScript与人们谈到的JavaScript有着很
大的不同,但是随着W3C的WEB标准化进程,JScript与JavaScript的差别越来越少,可以
说90%以上都基本相同。IE 9中使用的JavaScript引擎为Chakra(中译:查克拉),该引擎在很
大程度上改善了IE浏览器对于JavaScript脚本执行性能。
1.1.2 Gecko(FF内核)
Gecko是Netscape 4开始采用的内核,后来的Mozilla FireFox(火狐浏览器) 也采用了该
内核,Gecko的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为
其编写代码,增加功能。因为这是个开源内核,因此受到许多人的青睐,Gecko内核的浏览
器也很多,这也是Geckos内核虽然年轻但市场占有率能够迅速提高的重要原因。
事实上,Gecko引擎的由来跟IE不无关系,前面说过IE没有使用W3C的标准,这导致
了微软内部一些开发人员的不满;他们与当时已经停止更新了的 Netscape的一些员工一起
创办了Mozilla,以当时的Mosaic内核为基础重新编写内核,于是开发出了Geckos。不过事
实上,Gecko 内核的浏览器仍然还是Firefox (火狐) 用户最多,所以有时也会被称为Firefox
内核。此外Gecko也是一个跨平台内核,可以在Windows、 BSD、Linux和Mac OS X中使用。
FireFox采用使用JavaScript引擎是SpiderMonkey,之后在FireFox 3.5版本开始加入了
TraceMonkey引擎作为SpiderMonkey的JavaScript的JIT编译引擎,大大提高了编译效能;
而在FireFox 4.0时JägerMonkey引擎也被添加进来与TraceMonkey引擎对JavaScript采取组
合编译,直到FireFox 11.0之后TraceMonkey最终被停止使用。在2013年发布的FireFox 18.0
中将IonMonkey引擎作为JavaScript的默认编译引擎。
1.1.3 Webkit内核
Webkit是苹果公司自己的内核,也是苹果的Safari浏览器使用的内核。Webkit引擎包
含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,
它们都是自由软件,在GPL条约下授权,同时支持BSD系统的开发。所以Webkit也是自由
软件,同时开放源代码。在安全方面不受IE、Firefox的制约,所以Safari浏览器在国内还是
很安全的。
限于Mac OS X的使用不广泛和Safari浏览器曾经只是Mac OS X的专属浏览器,这个内
核本身应该说市场范围并不大;但似乎根据最新的浏览器调查表明,该浏览器的市场甚至已
经超过了Opera的Presto了。当然这一方面得益于苹果转到x86架构之后的人气暴涨,另外
也是因为Safari 3终于推出了Windows版的缘故吧。Mac下还有OmniWeb、Shiira等人气很
高的浏览器。
google的chrome、360极速浏览器以及搜狗浏览器高速模式也使用webkit作为内核。
WebKit内核在手机上的应用也十分广泛。
Chrome浏览器采用的JavaScript引擎是由丹麦Google开发的V8。
2. 加载XML文档
加载XML文档到内存中构造一棵DOM文档树,这个工作主要由浏览器包含的XML
parser解析器完成,这个包含在浏览器中的XML parser必须支持DOM的解析方法。
由于不同浏览器所包含的XML parser方式不尽相同,因此在XML文档加载时,要考虑
到不同浏览器之间的兼容性。
2.1本地加载XML文档
2.1.1获取浏览器的XML解析器
2.1.1.1 IE
在IE浏览器中XML解析器是以COM插件对象方式提供的,而不是包含在IE浏览器核
心之中的。因此需要使用ActivexObject进行构造实例化解析器的Automation对象实例。
说明:
COM对象支持IUnknown接口,Automation对象支持IUnknown以及IDispatah双接口。
版权声明:本文标题:浏览器中操作XML文档 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1719272548a767754.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论