`

【转】关于浏览器的内核以及几个小问题

阅读更多

这个是能找到的最像原创的地址了

http://blog.sina.com.cn/s/blog_3e99363d0100tsmo.html


一些内容来自于我能找到的资料和我自己的理解,不保证正确,但是大致应该是没错的。


一、排版引擎

    首先厘清一下浏览器内核是什么东西。
    英文叫做:Rendering Engine,中文翻译很多,排版引擎、解释引擎、渲染引擎,现在流行称为浏览器内核,至于为什么流行这么称呼,请自行领悟。
    Rendering Engine,顾名思义,就是用来渲染网页内容的,将网页的内容和排版代码转换为可视的页面。因为是排版,所以肯定会排版错位等问题。为什么会排版错位呢?有的是由于网站本身编写不规范,有的是由于浏览器本身的渲染不标准。
    现在有几个主流的排版引擎,因为这些排版引擎都有其代表的浏览器,所以常常会把排版引擎的名称和浏览器的名称混用,比如常的说IE内核、Chrome内核。其实这样子是不太合理的,因为一个完整的浏览器不会只有一的排版引擎,还有自己的界面框架和其它的功能支撑,而排版引擎本身也不可能实现浏览器的所有功能。下面罗列一下几款主流的排版引擎和浏览器。

1、Trident(Windows)
    IE浏览器所使用的内核,也是很多浏览器所使用的内核,通常被称为IE内核。基于Trident内核的浏览器非常多,这是因为Trident内核提供了丰富的调用接口。老的Trident内核(比如常说的IE6内核)一直是不遵循W3C标准的,但是由于它的市场份额最大,所以后果就是大量的网站只支持老的Trident内核,依据W3C标准写的网页在老的Trident内核下面又出现偏差。目前可供调用的最新版的Trident内核是IE9所用的内核,相较之前的版本对W3C标准的支持增强了很多。
Trident内核的浏览器:
IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0);
世界之窗1、世界之窗2、世界之窗3;
360安全浏览器1、360安全浏览器2、360安全浏览器3、360安全浏览器4、360安全浏览器5;
傲游1、傲游2;搜狗浏览器1;腾讯TT;阿云浏览器(早期版本)、百度浏览器(早期版本)、瑞星安全浏览器、Slim Browser;
GreenBrowser、爱帆浏览器(12 之前版本)、115浏览器、155浏览器;
闪游浏览器、N氧化碳浏览器、糖果浏览器、彩虹浏览器、瑞影浏览器、勇者无疆浏览器、114浏览器、蚂蚁浏览器、飞腾浏览器、速达浏览器、佐罗浏览器;

2、Gecko(跨平台)
    Netscape6启用的内核,现在主要由Mozilla基金会进行维护,是开源的浏览器内核,目前最主流的Gecko内核浏览器是Mozilla Firefox,所以也常常称之为火狐内核。因为Firefox的出现,IE的霸主地位逐步被削弱,Chrome的出现则是加速了这个进程。非Trident内核的兴起正在改变着整个互联网,最直接的就是推动了编码的标准化,也使得微软在竞争压力下不得不改进IE。不过比较可惜的是,虽然是开源的,也开发了这么多年,基于Gecko的浏览器并不多见,除了一些简单的改动(坑爹的X浏览器)或者是重新编译(绫川ayakawa、tete009),深度定制或者增强型外壳的还比较少见。另外就是有一些其它软件借用了Gecko内核,比如音乐管理软件SongBird。
常见的Gecko内核的浏览器
Mozilla Firefox、Mozilla SeaMonkey
Epiphany(早期版本)、Flock(早期版本)、K-Meleon

3、KHTML(Linux)
    KDE开发的内核,速度快捷,容错度低。这个内核可能不见得很多人知道,但是后面再看下去你就明白了。
    常见的KHTML内核的浏览器:Konqueror

4、WebKit(跨平台)
    由KHTML发展而来,也是苹果给开源世界的一大贡献。是目前最火热的浏览器内核,火热倒不是说市场份额,而是应用的面积和势头。因为是脱胎于KHTML,所以也是具有高速的特点,同样遵循W3C标准。
    常见的WebKit内核的浏览器:Apple Safari、Symbian系统浏览器

5、Chromium(跨平台)
    维基百科里面并没有将Chromium从WebKit分出来,这个区分完全是基于我个人的恶趣味。记得以前看过一个大牛的博文说过,Chromium把WebKit的代码梳理得可读性提高很多,所以以前可能需要一天进行编译的代码,现在只要两个小时就能搞定。这个我自己也没有考究过,但是估计可信。这个也能解释为什么Gecko和WebKit出来了这么久,第三方编译、定制的版本并不多,但是由Chromium衍生出来的浏览器早就满坑满谷了。
    常见的Chromium内核的浏览器:Chromium、Google Chrome、SRWare Iron、Comodo Dragon

6、Presto(跨平台)
    Opera的内核,准确地说,是Opera 7.0及以后版本的内核,Opera 3.5-6.1版本使用的内核叫做Elektra。不用说,Presto对W3C标准的支持也是很良好的。虽然我很喜欢Opera,但是我对Presto的渲染速度一直有保留态度。之前在OperaChina论坛看见有人说过,Presto优先解析文字,保证可阅读性,媒体资源的渲染放后。
    常见的Presto内核的浏览器:Opera

7、其它
http://zh.wikipedia.org/wiki/排版引擎


二、JavaScript引擎

    说完了排版引擎,接下来说说JavaScript引擎。顾名思义,JavaScript引擎就是用来渲染JavaScript的。为什么要单独拿出来说呢?因为它涉及到跑分。经常看见很多文章在报道说哪个浏览器更快,其实大部分说的就是JavaScript的渲染速度,而不是页面的载入速度。在网速许可的情况下,其实各个浏览器的页面载入速度差别不大(Opera逊色一些)。那是不是说对比JavaScript的渲染速度其实没有意义?也不是这么说,因为现在JavaScript在页面中的比重会越来越大,越来越多的动态页面开始大量借助JavaScript,比如现在主流的SNS、邮箱、网页游戏,所以JavaScript的渲染速度也是一个很重要的指标。JavaScript的渲染速度越快,动态页面的展示也越快。Opera在JavaScript引擎的跑分上面一直都是很牛逼的,一般来说最新测试版之间PK,Opera基本都会夺冠。

1、Chakra
查克拉,IE9启用的新的JavaScript引擎。

2、SpiderMonkey/TraceMonkey/JaegerMonkey
SpiderMonkey应用在Mozilla Firefox 1.0-3.0,TraceMonkey应用在Mozilla Firefox 3.5-3.6版本,JaegerMonkey应用在Mozilla Firefox 4.0及后续的版本。

3、V8
应用于Chrome、傲游3。

4、Nitro
应用于Safari 4及后续的版本。

5、Linear A/Linear B/Futhark/Carakan
Linear A应用于Opera 4.0-6.1版本,Linear B应用于Opera 7.0~9.2版本,Futhark应用于Opera 9.5-10.2版本,Carakan应用于Opera 10.5及后续的版本。

6、KJS
KHTML对应的JavaScript引擎。


三、几个测试

1、V8引擎
http://v8.googlecode.com/svn/data/benchmarks/v6/run.html
    现在很多“双核”浏览器都用它来跑分测试JavaScript引擎,分数越高越好。

2、Acid3
http://acid3.acidtests.org/
    标准支持测试,分数越高越好,满分是100分。

3、HTML5
http://www.html5test.com/
    测试浏览器对HTML5标准的支持,分数越高越好。


四、几个奇葩

1、IETab
    在没有第三方编译版本的时候,IETab一直是Mozilla Firefox、Chrome等非Trident内核的浏览器的安装量最大的扩展之一,方便用户在不开启IE的情况下调用Trident内核访问一些兼容性比较差的网站。

2、Trident/Gecko双核浏览器
    虽然IETab能实现部分需求,但是深度订制的毕竟还是不一样,所以Trident/Gecko双核浏览器就诞生了,Sleipnir、Avant 12(Orca)是这类里面比较常见的。Avant 12因为有Orca的前期积累,所以轻车熟路,后面还打算加入Chromium,变成三核浏览器,但是偏偏现在Mozilla Firefox和Chrome都在疯狂刷版本号,肯定有一部分精力要花在跟进版本上。

3、Trident/WebKit双核浏览器
    现在国内最主流的“双核”浏览器基本都是这个架构,360极速浏览器、世界之窗浏览器极速版、傲游3搜狗浏览器3、QQ浏览器、枫树浏览器、快快浏览器、百度浏览器、阿云浏览器(后期版本)、太阳花浏览器,其中最奇葩的是傲游3。其它双核浏览器都是基于Chromium的,而傲游是基于WebKit的,但是偏偏又用的是V8引擎。

4、Trident/Gecko/WebKit三核浏览器
    目前能见的应该就是日本的Lunascape,Avant增加了WebKit内核之后也会归类到这里。说实话,Lunascape真的很难用,真的很奇葩。各个内核相对独立,外壳本身不够强化,稳定性不高,所以还不如用回单核浏览器。


五、几个小点

1、Chrome/Chromium
    很多人都会说自己用的双核浏览器是Chrome/IE双核的,或者说是基于Chrome的。其实这种说法并不正确,因为Chrome本身并不开源,其它厂商是不能去定制Chrome的。能被修改、定制的是Chromium,Chrome的开源开发版本,代码和Build都提供下载。Chromium/Chrome两个单词都是铬,分别是拉丁文和英文,除了名字之外,很有很多不同,你可以自己对比一下。
    Chromium一天最多可以更新十几二十个版本,实验性的新特性都会现在这里放出,但是Chromium本身其实并不稳定。
    Chrome总共有四个更新分支:Canary、Dev、Beta、Stable,稳定性依次增强。

2、MyIE、MyIE2、傲游、GreenBrowser
    自行搜索,一段历史。

3、页面兼容性判断
    在确保IE浏览器没有损坏的基础上,搭配一款非Trident内核的浏览器进行判断,如果可以的话,最好所有内核都配齐了。
    控制变量就能找到问题所在,是浏览器本身的问题,还是页面编码有问题。对于用户来说就能更好地去选择自己该用什么浏览器访问什么页面,对于开发者来说应该要写出无差别代码。

4、一直被模仿,一直被超越的Opera
Opera其实很好看也很好用,而且极度创新,但是市场占有率一直很低。很多很好用的新特性总是被抄袭,所以大家笑称Opera“一直被模仿,一直被超越”。坊间传闻多标签页浏览器就是Opera发明的,但是貌似有人考究了这个传闻其实不属实。不过快速拨号、Turbo浏览等功能就是扎扎实实Opera首创的。你可以不用Opera,但是你会损失很多乐趣。

5、这年头流行刷版本号
现在版本号最高的浏览器是Chrome,稳定版的版本号是14,也是现在主流浏览器里面诞生时间最短的,真是一个刷版本号高手。早期的Chrome版本更迭还会增加一些比较重要的新特性,比如扩展支持,现在的版本更迭基本上并没有伴随什么大的更新。现在很多伪高端用户就会整天追着第三方编译版本赶紧跟进版本号,但是其实真正的意义并不大。
多亏了Chrome的“提携”,今年Firefox也在猛刷版本号,年初还是3.x,现在正式版已经是7.0.1,每夜版已经到了10.0。Opera积累了多年才到11.50,测试版是12.0。IE的正式版是9,平台预览版是10。

6、查看源代码、开发者工具
一般来说,查看源代码和使用开发者工具是比较实用的,可能用的机会并不多,但是在判断一些问题的时候其实是很有用的。通过查看源代码或者使用开发者工具,可以大致了解这些网站里面的一些元素或者加载的脚本或者是规则,对于判断兼容性问题有一定的帮助,也可以用来准确捕捉页面元素。

7、几个主要的浏览器官网以及版本下载
(1)Internet Explorer
官网:
http://windows.microsoft.com/zh-CN/internet-explorer/products/ie/home
IE7下载:
http://www.microsoft.com/downloads/zh-cn/details.aspx?displaylang=zh-cn&FamilyID=9ae91ebe-3385-447c-8a30-081805b2f90b
IE8下载:
http://windows.microsoft.com/zh-CN/internet-explorer/downloads/ie-8
IE9下载:
http://windows.microsoft.com/zh-CN/internet-explorer/downloads/ie-9/worldwide-languages
(2)Mozilla Firefox
官网:
http://firefox.com.cn/
7.x Release:
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest/win32/zh-CN/
8.x Candidates:
http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/8.0b1-candidates/build1/win32/zh-CN/
9.x Aurora:
http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/
10.x Nightly:
http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/
(3)Apple Safari
官网:
http://www.apple.com.cn/safari/
下载:
http://www.apple.com.cn/safari/download/
(4)Chromium
官网:
http://www.chromium.org/
下载:
http://build.chromium.org/f/chromium/snapshots/Win_Webkit_Latest/
(5)Google Chrome
官网:
http://www.google.com/chrome?hl=zh-cn
Stable在线安装包:
http://www.google.com/chrome/eula.html?hl=zh-cn
Beta在线安装包:
http://www.google.com/chrome/eula.html?hl=zh-CN&extra=betachannel
Dev在线安装包:
http://www.google.com/chrome/eula.html?hl=zh-CN&extra=devchannel
Canary在线安装包:
http://www.google.com/chrome/eula.html?hl=zh-CN&extra=canarychannel
Stable离线安装包:
http://www.google.com/chrome/eula.html?hl=zh-CN&standalone=1
Beta离线安装包:
http://www.google.com/chrome/eula.html?hl=zh-CN&standalone=1&extra=betachannel
Dev离线安装包:
http://www.google.com/chrome/eula.html?hl=zh-CN&standalone=1&extra=devchannel
Canary离线安装包:
http://www.google.com/chrome/eula.html?hl=zh-CN&standalone=1&extra=canarychannel
(6)Opera
官网:
http://www.opera.com/
正式版:
http://www.opera.com/download/
测试版:
http://snapshot.opera.com/windows/latest

 

分享到:
评论

相关推荐

    cpp-一个小巧轻量的浏览器内核用来取代wke和libcef

    在C++开发中,选择这样的轻量级内核有以下几个优点: 1. 小型体积:相比于完整的Chromium或WebKit,它们占用更少的磁盘空间和内存,适合资源受限的设备。 2. 快速启动:由于代码量较小,启动时间会更快。 3. 更少的...

    常见浏览器内核及其特点

    根据提供的文件信息,我们可以深入探讨几种常见的浏览器内核,包括Trident、Gecko、Presto、WebKit等,以及它们的特点。 ### Trident(IE内核) Trident,也被称为MSHTML或Internet Explorer引擎,是微软为...

    易语言谷歌69内核最新浏览器源码

    这通常涉及到以下几个关键步骤和知识点: 1. **易语言基础**:首先需要熟悉易语言的基本语法、控制结构、函数和类库,这是编写任何程序的基础。 2. **Web浏览器支持库**:这里提到了“精易Web浏览器支持库”,这是...

    判断浏览器内核.zip

    综上所述,这个资料包提供了如何利用JavaScript进行浏览器内核识别的方法和技巧,对于Web开发者来说是十分实用的工具,尤其是在处理跨浏览器兼容问题时。通过对UserAgent的解析和内核类型的判断,可以更好地适应各种...

    C# chrome内核浏览器

    关于C#开发Chrome内核浏览器的知识点,我们可以深入讨论以下几个方面: 1. **CEF(Chromium Embedded Framework)**:CEF是一个开源框架,允许开发者将Chromium内核嵌入到他们的应用程序中。C#开发者通常会使用CEF...

    腾讯X5内核浏览器类库.zip

    安装和使用腾讯X5内核浏览器类库通常涉及以下几个步骤: 1. 下载提供的压缩包,并解压到E4A的工作目录。 2. 在E4A工程中引入相关的库文件,如添加`.elb`和`.elp`文件。 3. 初始化X5内核,设置必要的配置项,例如...

    非ie内核浏览器activex支持插件

    2. **浏览器内核差异**:IE使用的是Trident内核,而现代浏览器如Chrome、Firefox、Safari分别使用Blink、Gecko、WebKit内核。这些内核对Web标准的实现和扩展支持各有不同,导致ActiveX仅在IE下运行。 3. **跨内核...

    当今各大浏览器内核描述

    ### 当今各大浏览器内核描述 #### 一、引言 浏览器是互联网时代的重要工具之一,随着技术的发展,各种浏览器不断涌现,为了更好地理解和区分这些浏览器,了解它们所使用的浏览器内核至关重要。本文将根据提供的...

    04 浏览器内核1

    浏览器内核的主要任务包括解析网页内容、布局元素、处理样式、渲染图形以及执行JavaScript代码。不同的内核在处理网页标准和性能上存在差异,这往往会导致在不同浏览器中网页显示效果的不同。 1. Trident内核,由...

    C# winform利用cefsharp组件 自制简易Chrome内核浏览器

    在提供的压缩包文件列表中,我们可以看到以下几个关键文件: 1. `BroswerX.sln`:这是Visual Studio的解决方案文件,包含了项目的配置信息和所有关联的项目。 2. `BroswerX.v12.suo`:这是Visual Studio的用户选项...

    各大主流浏览器的内核区分

    #### 浏览器内核概述 浏览器内核是浏览器的核心组件,负责解析网页代码(HTML、CSS、JavaScript等),并将它们转化为用户可以看到和交互的图形界面。不同的浏览器内核在实现上有所差异,这导致了不同浏览器在页面...

    一个完整的WebKit嵌入式浏览器内核源代码

    这通常涉及以下几个关键步骤: 1. **平台适配**:WebKit需要与特定的操作系统接口进行交互,包括窗口管理、事件处理、内存管理和文件系统访问。在Win32和WinCE上,这些接口可能与WebKit原生支持的Unix-like系统有所...

    C#封装的chorme内核浏览器_demo

    封装Chromium内核的过程主要包括以下几个步骤: 1. **引入库**:首先,需要引入C#支持Chromium的库,例如Awesomium、CefSharp等。这些库提供了与Chromium交互的接口。 2. **初始化**:在C#代码中实例化Chromium的...

    互联网技术与应用___论文 -小论浏览器内核

    浏览器的工作流程大致可以分为以下几个步骤: 1. **用户输入URL**:当用户在浏览器地址栏输入URL后,浏览器会首先检查本地缓存是否存在该页面的数据。 2. **DNS解析**:如果没有缓存,则浏览器会发起DNS查询,将URL...

    JAVA编写的Gecko内核浏览器源码

    这一项目主要涉及到以下几个核心知识点: 1. **Java编程语言**:Java以其“一次编写,到处运行”的特性,成为跨平台开发的理想选择。在这个项目中,开发者使用Java语言创建了浏览器的基础框架,包括用户界面、网络...

    Java-Swing嵌入浏览器(本地浏览器和webkit浏览器-火狐内核)

    这通常涉及到以下几个步骤: 1. **引入依赖**:首先,你需要在项目中引入DJnative-SWT和SWT的相关库,这些库包含调用浏览器引擎所需的类和方法。 2. **创建Browser实例**:使用SWT的`Browser`类创建一个浏览器实例...

    C#MiniBlink内核浏览器_c#miniblink_c#blink_minblink_miniblink浏览器_c#迷你浏

    开发C# MiniBlink内核浏览器的过程大致分为以下几个步骤: 1. **环境准备**:首先,你需要安装Visual Studio或.NET Core SDK,以及C++编译器,因为MiniBlink是用C++编写的,需要进行编译链接。同时,还需要下载...

    webqq+内核浏览器+很方便很小的浏览器

    刚毕业,一离开学校就面对很多生存问题,不禁让我想起过去那些漂泊的岁月。 我不曾忘记五年前一样的初中毕业,一样的离别,一样的迷茫。 还有四年前,一样的电大,一样的离别,一样的难舍,一样的四海为家。 还...

Global site tag (gtag.js) - Google Analytics