设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

互联技术变迁:双核浏览器漫谈

2011-8-4 11:20| 发布者: joejoe0332| 查看: 3229| 评论: 0|原作者: 李沫南|来自: 程序员

摘要:   历史  随着Google Chrome浏览器攻城略地,市场份额逐步提升,其使用的WebKit网页渲染引擎也逐渐步入开发者的视野。在国内越来越多的第三方浏览器厂商开始尝试使用WebKit渲染引擎,并结合中国的具体国情(网银插 ...

  兼容IE特性的几个层面

  改进WebKit或Gecko内核(以下不区分WebKit或Gecko,统称为内核),使之兼容IE的扩展特性是一个非常大的方向,具体包括下面几个兼容层面。

  DOM的兼容:增加目前不被内核支持的DOM元素及DOM元素属性。这个层面的兼容开发最简单,引入的副作用最小。

  CSS的兼容:在兼容模式下,修改CSS的行为(典型的Box模型),增加IE扩展的属性。但这个层面上不可避免地会引入IE带来的对CSS的错误实现,这个实现是IE开发团队本身也想修改的。而且,由于同一个CSS样式的定义有不同的实现,也就是意味着浏览器内核有两种运行模式——原生模式和兼容模式,而且更要命的是这两种模式不是网页作者可以通过DTD选择的,必须通过用户的手动或者某种人工智能算法予以选择。这种情况下,和直接使用双核没有区别。

  脚本的语法特性:IE的架构设计上支持多种脚本语言,对JavaScript的语法本身做了一定程度的扩展。如果要兼容IE的行为,对于JavaScript的解析器也要做一定的改动。万幸的是,VBScript已经用得越来越少了。

  IE的扩展模块:为了方便做网页,IE也扩展了一些模块,如:XML数据岛技术、HTML Application、Behavior、VML等。如果需要兼容,这些模块也都是不小的工程。

  ActiveX的兼容:国内的网络银行等应用使用ActiveX,无论WebKit还是Gecko,使用的插件协议都是nsplugin,而在技术上,实现nsplugin到ActiveX的Wrap是可能的。

  渲染顺序的兼容:不同浏览器对于渲染时间(生成元素的先后顺序)有各自的实现,导致某些使用脚本动态创建DOM树节点的页面因为找不到对应的页面元素而报错。而修改这个行为可能会非常影响内核的渲染速度。

  兼容IE特性的反思

  遇到不兼容的网页,常用解决方案往往只有两个修改网页或修改浏览器。因为国内的历史网页实在太多,大家的目光的焦点就都放在修改浏览器渲染引擎上了。可这真的正确吗?

  现代浏览器是非常复杂的系统软件。Mozilla开发社区曾经有句名言:“没人知道Mozilla是什么”,因为Mozilla项目太大了,以至于超过人类个体能够理解的范围,某个细节行为的修改,很有可能在意想不到的地方带来副作用。

  从安全方面看,我们说浏览器安全或不安全往往是指在针对该浏览器的攻击手段有多少。历史的经验也证明了,Firefox成为主流浏览器后,爆出的安全漏洞并不比IE少多少。而国产浏览器新开发了这些兼容特性后,是否引入了新的安全漏洞是一个值得仔细慎重考虑的问题。

  从法律方面,由于软件专利的存在,IE的某些专有特性,不单是一个软件的技术规格,更是被美国专利法保护的专利。在国产浏览器厂商普遍缺少浏览器方面的专利池保护的现状下,而贸然开发IE的专有功能的兼容模块,会给自己带来相当大的法律风险。在周星驰的《功夫》中曾有名言“天下武功,无坚不摧,唯快不破!”历史遗留的问题就交给历史解决吧!现今的浏览器离给用户带来舒适无缝的互联体验还差得很远,与其把资源投入历史,不如脚踏实地的去改进用户的浏览体验。“唯创新不败。”
2

酷毙
1

雷人
1

鲜花

鸡蛋

漂亮

刚表态过的朋友 (4 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部