现在铺天盖地的浏览器产品,弄得大家眼花缭乱,于是人们开始站在各自的立场为选用哪款浏览器吵得不可开交。但我发现好多人在面对这些浏览器时,似乎只依赖于广告信息和盲目跟风,而自己并不是很清楚各种浏览器的优劣。大多数人甚至洋洋自得的抓住一个根本不算特点的特点,到处去对比那些毫无可比性的对比。至于类似"傲游加载网页的速度比IE快多了"这样的理由,也算是以讹传讹的笑话吧。更加可悲的当属像我们这群做WEB前端开发的,同时跑着七八个浏览器,面对一堆束手无策的兼容性问题,也只有一脸苦笑地发出这个浏览器垃圾,那个比这个更垃圾的感叹。
先普及一下基础,每个独立的浏览器产品,从通俗意义上讲都是由两部分组成,浏览器的外壳和内核。其中外壳主要为用户提供界面,以及产品的一些扩展功能。一个好的外壳会带来良好的用户体验,是产品抓住用户的关键,例如傲游(Maxthon)的操作性和Firefox的大量插件和可扩展性。而内核(Layout Engine, 也叫 Rendering Engine, 译作排版引擎或渲染引擎)则负责对HTML, Javascript及CSS等页面代码进行解析和渲染,不同的内核渲染出来的页面可能会不同,这也是页面开发者面对头痛的兼容性问题和W3C致力推出一个WEB前端标准的原因。浏览器内核直接决定了页面加载的速度和渲染出来的样子。
目前主流浏览器市场大都有以下几种浏览器内核:
Trident
Trident内核的代表当然就是大名鼎鼎的Microsoft Internet Explorer了,人们亲切的称为IE。Trident伴随着IE4,由微软在1997年正式发布,因此它又叫MSHTML。而后不断改进,直到现在的IE7采用的Trdent 5,终于后知后觉地支持了部分W3C标准语法以及带Alpha通道的PNG。
由于微软的Windows操作系统的普及,IE一直占据着浏览器市场的主体地位,然而Trident无疑是几大主流内核中最庞大和最杂乱的,因此对于HTML和Javascript等脚本的实时运算效率都比较低,再加上繁杂的ActiveX运算,它通常需要花更多的时间来渲染页面。另外,它对W3C的标准支持也是最差的,在我5年以上的WEB前端开发经验中,如果以W3C标准作为基准,大约70%以上的页面Bug来自IE6,将近30%的Bug来自于IE7,2%~3%的Bug来自于IE8 beta。Trident也无法实现跨平台,在Mac OS和Unix/Linux系统中,基本无法使用Trident内核浏览器。
然而不可避免的是,由于IE的市场份额占绝对优势,国内大多数网站是基于IE进行开发和测试的,因此Trident对目前已有的网站的兼容性是最高的。同样也由于这个原因,WEB开发者们不得不尴尬地运用大量非标准代码去兼容Trident。随着Trident的不断更新和完善,目前已发布的IE8 beta2已经非常接近于W3C标准,这对于WEB开发者来说是一个好消息。
目前采用Trident内核的除了微软的全线产品外,还有AOL Explorer, Avant, Maxthon(傲游), TheWorld(世界之窗, 360安全浏览器), 腾迅TT等。这些浏览器大多只是一个壳,只是在Windows平台上调用了系统中的Trident内核而已。在外壳上,IE实在非常平淡无奇,除了作为Windows默认浏览器占有大部分市场份额和它臃肿杂乱的内核外,IE并没有更多特色。相比起来360安全浏览器增强了网络安全方面的功能,能让对电脑知识了解不多的用户更大可能地避免病毒和恶意程序的骚扰。以及Maxthon(傲游)增强了的用户操作,增强了用户体验(Maxthon似乎也提供Gecko内核的支持,用户可以自定义选择是否采用Gecko内核,不过本人并没有使用过Gecko内核的Maxthon,不作评价)。
Gecko
Gecko的前身与Trident一样是Mosaic。它最早是由Netscape培育开发的,它的第一个稳定版本在1999年发布。后来Netscape解散后,Mozilla小组成立了Mozilla基金会,合同一部分对于Trident不遵循W3C标准感到不满的微软员工,一起延续了Gecko这个计划。Gecko是一个开源项目,用C++进行编写,由于本身的开放性,它得到了世界范围内大量程序员的青睐和支持。Gecko的代表就是Mozilla的主打产品Firefox。
Gecko一直坚持传承W3C标准,但由于IE时代的历史遗留问题,Gecko为了兼容大多数被IE误导了的页面,保有这块"错误的市场",不得不放宽了对错误代码的兼容。再加上随处可见的Firefox下载广告,以及Firefox3新版本的发布,Firefox正在一步步蚕食IE的市场份额,这样一来大多数网站开始兼容Firefox浏览器,从而走上了兼容W3C之路,更进一步加强了Firefox的页面兼容性。
由于Gecko的开放性,也造成了Gecko内核的不断臃肿,目前的Gecko的性能已经大不如从前了。不过Firefox真正的价值并不体现在性能上,除了对W3C标准的支持,Firefox以其强大的可扩展性吸引了大量用户,用户可以很方便地为自己的Firefox添加玲琅满目的插件以获得各种稀奇古怪的功能。
在Gecko内核的浏览器里,Firefox由于有Mozilla基金会专项维护,是当之无愧的首选,更新也很频繁。除此之外采用Gecko内核的浏览器还有AOL for Mac OS X, Camino, Epiphany, Flock, Galeon等,然而这些浏览器并不具备与Firefox竞争的实力。
Presto/Kestrel
把Presto和Kestrel放在一起说,当然是因为Opera这款小巧迅捷的浏览器。从Opera7.0到9.5版本之前所采用的是2003年发布的Presto内核,Presto在拉丁语中有急速,快速的意思。Opera9.5发布之后,采用的是Kestrel内核,Kestrel是一种隼,小巧而迅捷,从名字可以看出,Opera追求的就是速度和灵巧。
Presto和Kestrel是绝对传承W3C标准的浏览器内核,而为了追求内核本身的小巧和快速,它放弃了Gecko所提供的对错误的宽容,因此Opera的兼容性一直不是很好,对于大多数被IE惯坏了的网站,Opera总显示出更多的错误,当然对于标准页面来说,Opera所表现出的卓越性能和完美的渲染是无可厚非的。随着WEB前端技术的进步,越来越多的标准化网站将会使这类浏览器越来越受欢迎。
另外Presto和Kestrel都是封闭的商业程序,因此也从某些角度影响了这两款浏览器内核的发展和推广。除了Opera以外,一些WEB开发工具例如Adobe的Dreamweaver也是采用的Presto内核。
WebKit
WebKit的前身是KDE下的KHTML,后来苹果公司在KHTML和KJS的基础上开发了WebCore和JavaScriptCore,合称WebKit,并在2003年发布了第一个稳定版本。WebKit的强大还在于它是开源的和跨平台的。
WebKit同样传承了W3C标准,并且比Gecko更支持标准,在页面渲染和脚本计算上的性能也是非常卓越的,开放的技术使得WebKit迅猛发展,到现在它的页面的计算速度甚至已经全面超越了Presto和Kestrel。但与Opera有着同样的尴尬就是对错误和非标准的不兼容。不过随着不断标准化的WEB前端技术,这个问题也会慢慢消失。
由于是苹果公司主导开发的产品,WebKit的代表当然是苹果系统中下一统天下的Safari。Safari 3发布后也支持了Windows平台,其简洁高效也让Safari的市场份额迅速攀升。
Google最新的浏览器Google Chrome也是采用的WebKit内核,目前已经发布了beta版本,凭借Google追求完美的风格,再加上它的海量数据和高度整合的产品线,相信Google Chrome将来也会取得浏览量市场的一席天地。
除了Safari和Google Chrome,采用WebKit内核的浏览器还有Swift, OmniWeb, Shiira等。
以下个人意见
IE目前还是占有大量市场份额,但主流浏览器中只有Trident内核的浏览器不支持标准,虽然最新的IE8已经尽力在向标准靠拢,但Trident臃肿杂乱的内核如若不来个翻天覆地的变化,很难在未来有较好的发展。
Gecko内核的浏览器以Firefox的强大扩展功能和较好的兼容性吸引了一部分用户,尤其是众多Web开发者。除了对标准兼容性太差的页面,Firefox基本还是能胜任一般网页浏览。
以WebKit为内核的浏览器以新姿态出现,随着越来越多标准化的网站出现,WebKit若能继续保有其卓越的性能,将会在未来得到一个较大幅度的提升。
而Opera自身的封闭性限制了其发展,已被Safari为首的WebKit拉于马下。
---------------此言不敢苟同
我的个人配置:
Opera:上网浏览网页,看新闻,读blog。。。。日常上网;
Firefox:做网页调试,样式开发,代码查看等....开发工作
IE:上国内银行网站,遇到opera打开实在太难看的页面。
Chrome: 差点忘了。。。找出来玩玩,确实清爽可爱,可惜我有了Opera