Fork me on GitHub

Skip to content

  1. 互联网八卦-浏览器之战

    毕业答辩完了,终于有自己的时间折腾博客了,计划写一些列八卦文章,这是第一篇。

    browser war

    最近WWDC2009刚刚落下帷幕,Apple如期推出了一些列新产品。对于MS Win用户而言,比较直接的要数Safari 4正式版发布。Apple对Safari 4寄予了重望,希望能够在Mac/Win平台打破Firefox/IE两分天下独断的尴尬局面(即便Mac上Safari是默认浏览器,事实上广大Mac用户还是更加倾向于Firefox),在浏览器市场挽回自己的一点尊严。Google早在去年九月释出Chrome,表明自己进军浏览器市场的决心。浏览器之战早已开始,未来几年内谁会是最大的赢家呢?

    目前市场上的浏览器五花八门,不下百种,但究其根本不过三种主流渲染引擎:Trident / Gecko / WebKit。不管浏览器千变万化,变的只是外观和附加功能,本质上还是又渲染引擎决定了。以下就分别对这三款渲染引擎进行分析:

    Trident

    诞生于1997年10月,IE4时代。其最辉煌的时代2002年以后,其4.0版本成就了IE6独步市场的辉煌。可笑的是,将IE推下浏览器之王宝座的也是Trident 4.0。Secunia的一份报告指出:截止到2009年1月,IE6一共报告了142项缺陷,其中相当一部分是致命缺陷。在IE6辉煌过后,业界对Trident的安全性越来越表示怀疑,这也给了竞争对手 : Gecko和以其为渲染引擎的Mozilla Firefox可乘之机。

    有过前端开发经验的同学多少会知道Trident 4.0对于CSS Box Model的处理一直很诡异,和W3C的标准相差甚远,有图为证:

    IE Box Model

    除此之外,为了保持向后兼容性,Trident 4引入了臭名昭著的诡异模式(Quirks Model)。以这些为典型代表的IE6成就了所谓的Web标准,曾几何时让广大开发者无视了W3C的存在,将IE奉为圭臬。时至今日,还是有很多站点遗留着IE6的恶习陋风,让世人不得不感叹其当初影响力之大。

    在遭遇江山易主后,IE痛定思痛,连续释出IE7/IE8,对于Trident更是做了大刀阔斧的修改。根据内部人士,曾经供职于MS ATC的Realdodo师兄的介绍,目前的Trident性能已经非常好,对于标准的支持也有了很大的进步。我曾经和师兄在Twitter上有过几推,自己的态度也发生了很大的转变。MS已经努力了,失去的市场能否挽回,我们拭目以待。

    就目前的情况来看,近几年Trident能够保持自己的市场份额不下滑就非常不错了,因为它目前面对的还有两个虎视眈眈的强大竞争对手:Gecko和Webkit。

    Gecko

    Gecko

    Gecko本意为“蜥蜴”,也算继承了Mozilla基金会对于产品命名的一贯传统。脱胎于Netscape,一直以来一直默默无闻的在后面支持了Firefox的发展。今天Firefox取得的巨大成功,Gecko可谓功不可没。从诞生开始,Gecko就一直默默沿着W3C的标准前进,努力做到全面支持标准。Gecko不仅是一款HTML布局引擎,它提出了XUL标准,为UI设计提供了一个扩展性极强的解决方案,应用程序只需通过HTML/CSS/JS即可完成UI开发,并借助Gecko轻松实现跨平台支持。这就是为什么绝大多数Firefox扩展和主题可以在MS Win/Linux/Mac下直接使用的原因。目前Gecko的最新版为1.9.1,使用其的程序包括Firefox 3.5/ Thunderbird 3 / SeaMonkey 2.0,能够做到基本支持HTML4.0,CSS Level 2部分支持。

    WebKit

    WebKit

    继承了Apple的高贵血统,其前生是KDE上著名浏览器Konqueror的渲染引擎KHTML software library,由Apple公司领导推动,目前由KDE Porject, Apple, Nokia, Google, Touch Mobile等公司进行合作开发,目前已经移植到了各大主流平台。代表产品有Safari/Chromium(Google Chrome)

    WebKit的可贵支持在于其是KDE项目KHTML/KJS的fork,Apple取之于开源界,将其运用于商业软件Safari,并对其后期代码公开,算是对开源界的回馈。从这一点看到了Apple的大方慷慨,也可以看到大型商业公司和开源界合作同样可以获得双赢。后来Google选择WebKit作为其Chrome浏览器的渲染引擎,也遵循了这一原则,取之于民,用之于民。

    WebKit在标准的支持方面一直走在最前列。早在Konqueror 3.5时代就通过了Acid 2测试(具体时间为2005年11月,而IE到8.0才勉强通过Acid 2测试),2007年11月宣布全面支持HTML5媒体特征,包括直接通过HTML原语嵌入视频,并通过JS脚本进行控制(这一点具有非常重大的意义,意味着观看视频不需要任何插件)。目前WebKit全部支持CSS 2.1,并部分支持CSS 3。如果想要体验HTML5或者CSS 3这些新鲜玩意,WebKit是最好的选择。

    未来几年

    Web Standards Project推出了Acid测试,旨在推动Web标准化进程。这三款测试通过巧妙的设计来测试浏览器对于标准的支持。Acid一共分为1 /2/ 3三个级别,按照难度依次递增。Acid测试目前在业界得到公认,成为测试浏览器标准兼容性的行业标准。

    目前的情况是:Trident 4.0(IE8)、Gecko1.9、Webkit已经全部通过Acid2测试;Gecko1.9的Acid3测试得分为72,WebKit则走在最前列,目前的最新版已经能够拿到100分满分。

    acid 2 test

    但是拿到高分并不意味着一定具有领先优势。正如前文所述,由于Trident对于标准的无视,让这个世界诞生了很多非标准的Legacy页面。得分高并不是一件好事,越和标准接近,就意味着不支持的Legacy页面将越多,反而将会被视为“不标准”。Gecko只能拿到72分,并不是Mozilla的人能力不够,而是在标准和非标准之前的折中,可谓恰到好处。目前国外市场上Firefox的市场份额最高,也很好地说明了这一点。可以这么说,未来几年内,Firefox将是业界公认的最标准的浏览器,WebKit 做得再好也无法超越。

    谁是赢家

    browser war

    今日浏览器市场今非昔比,无法出现哪家绝对垄断,三款浏览器渲染引擎三分鼎力天下倒是有可能。浏览器三国之战,对于用户来说倒是好事,因为现在大家都认识到标准的重要性,“战争”会变成标准支持的比赛。若干年后,等到各大引擎一致做到标准的良好支持,用户将不再为使用哪一款浏览器而烦心,因为每一款浏览器得到的结果都相同。

    补充

    关于各大渲染引擎的详细对比在WikiPedia上找到

    想进行Acid 测试?打开浏览器,猛点这里

    你也许会喜欢

    Categories: IT八卦.

    Tags: , ,

Comment Feed

6 Responses

  1. 移动平台呢?是不是Opera最猛? 感觉IE8的渲染质量都比不上IE7,图片看上去都很粗糙(不会是我的电脑的问题 吧)

    firstlightJune 15, 2009 @ 8:06 pmReply
    • 移动平台我没有研究,不过用过iTouch上的Safari后发现WebKit在移动平台表现非常出色。Opera Mini在手机终端市场还是很有一片市场份额的,不容小觑。 IE8没有用过,自然不知道具体了(升级后无法使用网银,故一直坚持在IE7)

  2. webkit实在是快,用了之后就无法忍受其他的了

    • 转载我在Twitter上发的浏览器价值观: 用IE是因为不可抗拒原因,用Chrome是因为速度需求,用Safari是因为面子问题,而用Firefox是完全出自个人感情 不管使用任何浏览器,都有正确理由吧

  3. 押题图片挺不错~赞~

    顺便一提,不要指望浏览器会统一在同一标准中,W3C自己都没有把XHTML2和HTML5扯清楚呢,W3C太学院派,不靠谱~

    还是期待各个浏览器都提升js引擎效率,前端开发专注于HTML4 + js + CSS2.1比较靠谱

    • 现在浏览器不都是在向标准靠拢吗,只是速度和靠近方式不同而已。完全统一不可能,至少也算大势所趋吧 顺便问一下,IE 7/8 对于CSS 2.1的支持如何?

      foremireJune 24, 2009 @ 6:09 pmReply



Some HTML is OK

or, reply to this post via trackback.