`
kongxiantao
  • 浏览: 112160 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

不同浏览器的内核研究

阅读更多

原文地址:http://hi.baidu.com/sandpie/blog/item/66fb95c8202f288cc81768bc.html/cmtid/93f20926fe6ec627d507420c

 

 

=============================================================================

 

主要参考维基百科整理 

通常所谓的浏览器内核也就是浏览器所采用的渲染引擎(layout engine, 也称排版引擎),渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。

0、四种常用的浏览器排版引擎简介

Trident: IE浏览器使用的内核,该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到目前的IE7。 Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现。此外,为了方便也有很多人直接简称其 为IE内核(当然也不排除有部分人是因为不知道内核名称而只好如此说)。

由于IE本身的“垄断性”(虽然名义上IE并非垄断,但实际上,特别是从Windows 95年代一直到XP初期,就市场占有率来说IE的确借助Windows的东风处于“垄断”的地位)而使得Trident内核的长期一家独大,微软很长时间 都并没有更新Trident内核,这导致了两个后果——一是Trident内核曾经几乎与W3C标准脱节(2005年),二是Trident内核的大量 Bug等安全性问题没有得到及时解决,然后加上一些致力于开源的开发者和一些学者们公开自己认为IE浏览器不安全的观点,也有很多用户转向了其他浏览 器,Firefox和Opera就是这个时候兴起的。非Trident内核浏览器的市场占有率大幅提高也致使许多网页开发人员开始注意网页标准和非IE浏 览器的浏览效果问题。使用Trident内核的浏览器大量出现,除了常见的IE、Maxthon、TT等,还有GreenBrowser、 AvantBrowser等等

 

Geckos: Netcape6开始采用的内核,后来的Mozilla FireFox也采用了改内核,Geckos的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。而且这个内核 跟Mosaic的关系更深,或者说事实上现在的Netscape Navigator已经改用这个内核了,因此Firefox的插件能够在Navigator上使用——当然,不是所有的都能兼容。因为这是个开源内核,因 此受到许多人的青睐,Geckos内核的浏览器也很多,这也是Geckos内核虽然年轻但市场占有率能够迅速提高的重要原因。

事实上,Geckos引擎的由来跟IE不无关系,前面说过IE没有使用W3C的标准,这导致了微软内部一些开发人员 的不满;他们与当时已经停止更新了的Netscape的一些员工一起创办了Mozilla,以当时的Mosaic内核为基础重新编写内核,于是开发出了 Geckos。不过事实上,Gecko内核的浏览器仍然还是Firefox用户最多,所以有时也会被称为Firefox内核。此外Gecko也是一个跨平台内核,可以在Windows、BSD、Linux和Mac OS X中使用

 

Presto: 目前Opera采用的内核,该内核在2003年的Opera7中首次被使用,也是由Opera Software开发出来的用以代替早期的Elektra内核(Opera 4~6)。该款引擎的特点就是渲染速度的优化达到了极致,也是目前公认网页浏览速度最快的浏览器内核,然而代价是牺牲了网页的兼容性。

实际上这是一个动态内核,与前面几个内核的最大的区别就在脚本处理上,Presto有着天生的优势,页面的全部或者 部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行JavaScript的时候有着最快的速度,根据在同等条件下的测试,Presto内核 执行同等JavaScript所需的时间仅有Trident和Gecko内核的约1/3(Trident内核最慢,不过两者相差没有多大)。那次测试的时 候因为Apple机的硬件条件和普通PC机不同所以没有测试WebCore内核。只可惜Presto是商业引擎,使用Presto的除开Opera以外, 只剩下NDS Browser、Wii Internet Channle、Nokia 770网络浏览器等,这很大程度上限制了Presto的发展

 

Webkit:  苹果公司自己的内核,也是苹果的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版的缘故吧。

因为Apple最近才将Safari移植到Windows因此暂时没有Windows上使用WebKit的其他浏览器,不过Mac下还有OmniWeb、Shiira等人气很高的浏览器。


1、常用浏览器的排版引擎比较



2、以Trident为核心的浏览器

3、其它使用Trident技术的应用程式

4、一般浏览器所支持的网页标准和技术


除了以上的标准网页技术外, Internet Explorer亦支持微软自家开发的VBScriptActiveX; 只有Windows版本的Internet Explorer才能使用ActiveX。

  • Internet Explorer亦有部分不正规的Javascript。
  • Firefox亦有部分不正规的css。例如 -moz-***

注 (5): CSS2为W3C为建议的标准,亦为最常用的CSS版本。

注 (6): XHTML建基于HTML,但为XML的应用。因此,XHTML的源代码必须比HTML更严谨。XHTML本应为XML parser所分析,但为了向后兼容的关系亦可当作HTML来分析。这表格只虑为把XHTML当作XML的浏览器。

注 (7): Internet Explorer 6支持大部分CSS2的特性,但相比于其他浏览器,它有重大的程序错误。

注 (8): 2005年1月28日后的nightly browser实验性的支持XForms [2]。需要安装插件。

注 (9): Konqueror可点选右下角雷达图直接链接至Akregator订阅RSS或Atom。

注 (10): Firefox 3.0 以后,已经可以完整支持 Acid2。

5、各种不同浏览器的起源及发展情况

http://zh.wikipedia.org/zh-cn/File:Timeline_of_web_browsers.svg

分享到:
评论

相关推荐

    开源浏览器内核原码

    开源浏览器内核原码是软件开发领域中的一个重要话题,它涉及到如何构建、理解和修改网络浏览器的核心组件。在本案例中,我们关注的是一个名为“csEXWB”的项目,这是一个基于C#语言的开源浏览器内核。C#是一种现代、...

    常见浏览器内核及其特点

    在IT行业的前端开发与网页测试领域,了解不同的浏览器内核及其特性是至关重要的。这是因为不同的浏览器内核在解析HTML、CSS以及执行JavaScript时可能存在差异,这直接影响到网页的兼容性和性能表现。根据提供的文件...

    浏览器内核miniblink、cef、firefox源码

    在本压缩包中,包含了三种不同的浏览器内核源码:miniblink、CEF(Chromium Embedded Framework)以及Firefox的源码。下面将详细探讨这三个内核及其相关知识点。 1. **miniblink**: - miniblink是基于Chromium...

    不用IE内核的浏览器.rar_delphi IE_delphi IE_浏览器_浏览器 delphi_浏览器 内核

    标题中的“不用IE内核的浏览器.rar”指出这是一个使用非Internet Explorer(IE)渲染引擎的浏览器项目,由Delphi...通过学习和研究这个项目,开发者不仅可以提升Delphi编程技巧,还能深入了解浏览器的内部工作原理。

    WebKit 开源浏览器内核 源代码 完整版

    深入研究 WebKit 的源代码,不仅可以提升对网页渲染和浏览器内核的理解,还能帮助开发者解决实际项目中遇到的问题,如优化页面加载速度、实现自定义的浏览器功能或提升应用程序的安全性。此外,对于想要参与开源项目...

    如意腾讯X5内核浏览器类库【完美】.rar

    3. "如意腾讯X5加载内核类库.zip":可能是类库的一个不同版本或者特定功能的补充,可能包含了针对X5内核加载优化的代码,开发者可以根据需求选择性地使用。 总之,“如意腾讯X5内核浏览器类库”是E4A开发者优化移动...

    基于IE内核的浏览器,内含源码

    通过阅读和研究源码,开发者可以深入理解浏览器的工作机制,学习如何优化内核,甚至可以根据自己的需求定制浏览器功能。这不仅有利于技术的传承,也有助于推动技术创新。 然而,随着Web技术的发展,HTML5、CSS3等...

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

    **C#封装Chrome内核浏览器** 是一个技术实践,它涉及到使用C#编程语言与Google Chrome的Chromium内核进行交互,以创建自定义的浏览器应用程序。这种技术通常用于开发桌面应用,提供与Web浏览器类似的功能,但可以...

    Robotium对于安卓多内核浏览器自动化测试支持的研究.pdf

    ### Robotium对于安卓多内核浏览器自动化测试支持的...这不仅涉及到技术层面的挑战,还需要深入理解不同浏览器内核的工作原理和特点。通过不断的努力和实践,相信能够使Robotium成为更加高效和可靠的自动化测试工具。

    自制网盘搜索器(使用WebKit .NET内嵌Webkit浏览器内核)

    本项目“自制网盘搜索器”就是这样一个解决方案,它利用WebKit .NET库,内嵌Webkit浏览器内核,实现了对多个网盘平台的搜索功能。 WebKit .NET是一个开源项目,它提供了.NET Framework与WebKit渲染引擎的接口。...

    chrome内核多标签浏览器c#源码

    【标题】"Chrome内核多标签浏览器C#源码"所涉及的知识点主要集中在使用C#编程语言构建一个基于Chrome浏览器内核(Chromium Embedded Framework, 简称CEF)的多标签浏览器应用上。这样的浏览器能够利用谷歌Chrome的...

    基于云计算的多核浏览器的研究与应用.pdf

    多核浏览器通过使用不同的内核引擎,可以分别针对不同类型的Web应用进行优化,例如使用旧版IE内核引擎处理那些仅支持旧版IE浏览器的Web应用,同时使用现代的Chromium内核引擎处理通用的Web内容。 云计算时代的...

    自制网盘搜索工具(使用CefSharp内嵌Chrome浏览器内核)

    为此,有开发者自制了一款网盘搜索工具,它利用CefSharp库内嵌了Chrome浏览器内核,为用户提供了一个高效、便捷的搜索体验。 首先,我们要理解什么是CefSharp。CefSharp是一个开源项目,它是Chromium Embedded ...

    浏览器(MFC IE内核浏览器)

    通过研究这个项目,我们可以学习到如何在MFC环境中集成和控制Web内容,以及如何构建基本的浏览器功能。这对于初学者来说是一份很好的学习资料,可以帮助他们理解浏览器的工作原理,提升MFC编程能力。

    实现基于 wke 的浏览器内核 demo 中js 和 c++ 的互调交互(含源码)

    本教程将探讨如何在基于WKE(Webkit for Embedding)的浏览器内核中实现JavaScript与C++之间的互调交互。WKE是一个轻量级、开源的Web浏览器引擎,它允许开发者将WebKit嵌入到C++应用程序中,为用户提供Web浏览功能。...

    腾讯X5内核离线使用Demo

    腾讯X5内核是一款由腾讯公司开发的高性能、低功耗的浏览器内核,它主要用于提升移动设备上的网页浏览体验。X5内核基于WebKit,同时融入了腾讯自家的优化技术,使其在速度、稳定性以及兼容性方面都有出色表现。这款...

    简易 chrome和IE内核浏览器

    通过分析和修改这些文件,开发者可以了解如何集成和切换不同的浏览器内核,或者为现有功能添加改进。 总的来说,这个“简易 chrome和IE内核浏览器”是一个旨在提供兼容性和灵活性的工具,允许用户在现代Web标准和...

    C# 基于谷歌Chrome内核 cefsharp web浏览器 多标签实例源码

    C# 是一种常用的编程语言,而`cefsharp`库则为C#开发者提供了一种利用谷歌Chrome内核(Chromium)构建嵌入式浏览器的解决方案。本实例源码是关于如何在C#应用程序中实现基于`cefsharp`的多标签浏览器的详细教程。 ...

    基于移动浏览器的HTML5核心技术的研究及其应用

    当用户在线时,浏览器会自动下载这些资源并存储在本地,以便在无网络连接时使用。这种离线存储对于教育领域的e-learning应用特别有益,学生可以在没有网络的环境下继续学习,如观看预加载的视频教程,访问离线阅读...

    D7~XE6使用google浏内核chromium做的浏览器全部源代码

    【标题】"D7~XE6使用google浏内核chromium做的浏览器全部源代码"涉及到的是一个使用Delphi编程语言构建的浏览器项目,它基于Google的开源浏览器内核Chromium。Delphi是一种强大的面向对象的编程环境,尤其适用于开发...

Global site tag (gtag.js) - Google Analytics