文章插图
浏览器核心【浏览器核心】浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“渲染引擎”,不过我们一般习惯将之称为“浏览器核心” 。负责对网页语法的解释(如标準通用标记语言下的一个套用HTML、JavaScript)并渲染(显示)网页 。所以,通常所谓的浏览器核心也就是浏览器所採用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息 。不同的浏览器核心对网页编写语法的解释也有不同,因此同一网页在不同的核心的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同核心的浏览器中测试网页显示效果的原因 。
基本介绍中文名:浏览器核心
外文名:Rendering Engine
作用:决定网页及页面格式信息
分类:Trident、Gecko、Presto等
核心分类TridentTrident(IE核心):该核心程式在1997年的IE4中首次被採用,是微软在Mosaic代码的基础之上修改而来的,并沿用到IE11,也被普遍称作”IE核心” 。Trident实际上是一款开放的核心,其接口核心设计的相当成熟,因此才有许多採用IE核心而非IE的浏览器(壳浏览器)涌现 。由于IE本身的“垄断性”(虽然名义上IE并非垄断,但实际上,特别是从Windows 95年代一直到XP初期,就市场占有率来说IE的确藉助Windows的东风处于“垄断”的地位)而使得Trident核心的长期一家独大,微软很长时间都并没有更新Trident核心,这导致了两个后果——一是Trident核心曾经几乎与W3C标準脱节(2005年),二是Trident核心的大量 Bug等安全性问题没有得到及时解决,然后加上一些致力于开源的开发者和一些学者们公开自己认为IE浏览器不安全的观点,也有很多用户转向了其他浏览器,Firefox和Opera就是这个时候兴起的 。非Trident核心浏览器的市场占有率大幅提高也致使许多网页开发人员开始注意网页标準和非IE浏览器的浏览效果问题 。补充:IE从版本11开始,初步支持WebGL技术 。IE8的JavaScript引擎是Jscript,IE9开始用Chakra,这两个版本区别很大,Chakra无论是速度和标準化方面都很出色 。Trident核心的常见浏览器有: IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);360安全浏览器(1.0-5.0为Trident,6.0为Trident+Webkit,7.0为Trident+Blink)猎豹极轻浏览器,360极速浏览器(7.5之前为Trident+Webkit,7.5为Trident+Blink)猎豹安全浏览器(1.0-4.2版本为Trident+Webkit,4.3及以后版本为Trident+Blink)猎豹极轻浏览器,傲游浏览器(傲游1.x、2.x为IE核心,3.x为IE与Webkit双核)、百度浏览器(早期版本)、世界之窗浏览器(最初为IE核心,2013年採用Chrome+IE核心)、2345浏览器、腾讯TT、淘宝浏览器、采编读浏览器、搜狗高速浏览器(1.x为Trident,2.0及以后版本为Trident+Webkit)、阿云浏览器(早期版本)、瑞星安全浏览器、Slim Browser、 GreenBrowser、爱帆浏览器(12 之前版本)、115浏览器、155浏览器、闪游浏览器、N氧化碳浏览器、糖果浏览器、彩虹浏览器、瑞影浏览器、勇者无疆浏览器、114浏览器、蚂蚁浏览器、飞腾浏览器、速达浏览器、佐罗浏览器、海豚浏览器(iPhone/iPad/Android)、UC浏览器(Webkit核心+Trident核心)等 。其中部分浏览器的新版本是“双核”甚至是“多核”,其中一个核心是Trident,然后再增加一个其他核心 。国内的厂商一般把其他核心叫做“高速浏览模式”,而Trident则是“兼容浏览模式”,用户可以来回切换 。GeckoGecko(Firefox核心):Netscape6开始採用的核心,后来的Mozilla FireFox(火狐浏览器) 也採用了该核心,Gecko的特点是代码完全公开,因此,其可开发程度很高,全世界的程式设计师都可以为其编写代码,增加功能 。因为这是个开源核心,因此受到许多人的青睐,Gecko核心的浏览器也很多,这也是Gecko核心虽然年轻但市场占有率能够迅速提高的重要原因 。事实上,Gecko引擎的由来跟IE不无关係,前面说过IE没有使用W3C的标準,这导致了微软内部一些开发人员的不满;他们与当时已经停止更新了的 Netscape的一些员工一起创办了Mozilla,以当时的Mosaic核心为基础重新编写核心,于是开发出了Gecko 。不过事实上,Gecko 核心的浏览器仍然还是Firefox (火狐) 用户最多,所以有时也会被称为Firefox核心 。此外Gecko也是一个跨平台核心,可以在Windows、 BSD、Linux和Mac OS X中使用 。补充:JavaScript引擎是:SpiderMonkey(1.0-3.0)/ TraceMonkey(3.5-3.6)/ JaegerMonkey(4.0-) 。Gecko核心常见的浏览器:Mozilla Firefox、Mozilla SeaMonkey、waterfox(Firefox的64位开源版)、Iceweasel、Epiphany(早期版本)、Flock(早期版本)、K-MeleonPrestoPresto(Opera前核心) (已废弃): Opera12.17及更早版本曾经採用的核心,现已停止开发并废弃,该核心在2003年的Opera7中首次被使用,该款引擎的特点就是渲染速度的最佳化达到了极致,然而代价是牺牲了网页的兼容性 。实际上这是一个动态核心,与前面几个核心的最大的区别就在脚本处理上,Presto有着天生的优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析 。此外该核心在执行Javascrīpt的时候有着最快的速度,根据在同等条件下的测试,Presto核心执行同等Javascrīpt所需的时间仅有Trident和Gecko核心的约1/3(Trident核心最慢,不过两者相差没有多大),本文的其中一个修改者认为上述测试信息过于老旧且不完整,因为他曾做过的小测试显示Presto部分快部分慢,各核心总体相当 。那次测试的时候因为Apple机的硬体条件和普通PC机不同所以没有测试WebCore核心 。只可惜Presto是商业引擎,使用Presto的除开Opera以外,只剩下NDSBrowser、Wii Internet Channle、Nokia 770网路浏览器等,这很大程度上限制了Presto的发展 。Opera现已改用Google Chrome的Blink核心 。WebkitWebkit(Safari核心,Chrome核心原型,开源):它是苹果公司自己的核心,也是苹果的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作为核心(在脚本理解方面,Chrome使用自己研发的V8引擎) 。WebKit 核心在手机上的套用也十分广泛,例如 Google 的手机 Gphone、 Apple 的iPhone, Nokia’s Series 60 browser 等所使用的 Browser 核心引擎,都是基于 WebKit 。WebKit核心常见的浏览器:傲游浏览器3、Apple Safari (Win/Mac/iPhone/iPad)、Symbian手机浏览器、Android 默认浏览器,Blink产品简介Blink是一个由Google和Opera Software开发的浏览器排版引擎,Google计画将这个渲染引擎作为Chromium计画的一部分,并且在2013年4月的时候公布了这一讯息 。这一渲染引擎是开源引擎WebKit中WebCore组件的一个分支,并且在Chrome(28及往后版本)、Opera(15及往后版本)和Yandex浏览器中使用 。相关新闻2013年4月3日,谷歌在Chromium Blog上发表部落格,称将与苹果的开源浏览器核心Webkit分道扬镳,在Chromium项目中研发Blink渲染引擎(即浏览器核心),内置于Chrome浏览器之中 。苹果在Safari中採用Webkit核心,并于2005年将Webkit公开为开源软体 。谷歌当时採用苹果的Webkit核心打造了Chrome浏览器 。Opera也宣布称将会转向Webkit核心,但是谷歌宣布此举后,Opera表示将会跟随谷歌採用其Blink浏览器核心,同时参与了Blink的开发 。谷歌转向研发Blink浏览器核心意义重大,谷歌此举欲降低Webkit即苹果在浏览器市场的影响力 。截止2012年底,Webkit浏览器核心占总浏览器市场份额约40% 。谷歌解释称,Chromium多处理架构系统与其他Webkit浏览器很不相同 。谷歌工程师Adam Barth在部落格中表示,随着浏览器的发展,苹果的Webkit已经不能满足用户需求,同时也有碍浏览器技术的创新步伐 。但是他也表示,谷歌自主研发Blink核心绝非易事,但是新核心将会提升整个开源网路生态系统的机能 。谷歌做出此举之际,Mozilla与三星也达成合作协定开发“下一代”浏览器渲染引擎Servo 。排版引擎WebCoreWebCore是苹果公司开发的排版引擎,它是在另外一个排版引擎“KHTML”的基础上而来的 。使用WebCore的主要有Safari,此外还有OmniWeb、Shiira、Swift等 。Safari现支持Windows,但效果不如macOS上的 。KHTMLKHTML,是HTML网页排版引擎之一,由KDE所开发 。KDE系统自KDE2版起,在档案及网页浏览器使用了KHTML引擎 。该引擎以C++程式语言所写,并以LGPL授权,支援大多数网页浏览标準 。由于微软的Internet Explorer的占有率相当高,不少以FrontPage製作的网页均包含只有IE才能读取的非标準语法,为了使KHTML引擎可呈现的网页达到最多,部分IE专属的语法也一併支援 。KHTML拥有速度快捷的优点,但对错误语法的容忍度则比Mozilla产品所使用的Gecko引擎小 。苹果电脑于2002年採纳了KHTML,作为开发Safari浏览器之用,并发布所修改的最新及过去版本原始码 。后来发表了开放原始码的WebCore及WebKit引擎,它们均是KHTML的衍生产品,在开发网站列出引擎改变内容,并会传回至KDE计画 。由于两个衍生产品各走不同路线,使两者原始码偏离,在与KDE交换更新会出现困难 。其中一个原因,是苹果在对外公开原始码之前,以一年时间编修他们的KHTML 。另外,苹果传送更新至KDE计画的方式,多是一口气把大量改动一起传送,KDE在整理资料也出现一定的困难,及后苹果表示会以CVS格式来传送 。再者,苹果所作出的改动包括macOS系统独有的事物,如Objective-C、KWQ等,在Linux及KHTML是没有的 。但KDE方面仍透过这些改动,为KHTML加入新功能及加快其排版速度 。基于KHTML核心的核心:WebKit、WebCore 。