zoukankan      html  css  js  c++  java
  • 想了解浏览器内核

    内核是浏览器底层架构最核心和基础的部分,按照功能可分为:渲染引擎和JS引擎。

    渲染引擎(Rendering Engine)也称为布局引擎(Layout Engine)、排版引擎,负责对网页语法的解释和渲染显示到浏览器。一个渲染引擎通常包括HTML解释器、CSS解释器、布局layout、网络等模块:

    通常讲的浏览器内核就是指代的浏览器的渲染引擎。

    不同的浏览器使用不同的渲染内核,对HTML/JS/CSS的标准语法的解释也存在差异,导致在显示效果、语法支持度和渲染效率上也存在差别,所以也就导致了网页程序在不同内核的浏览器下的表现和渲染差异,乃至bug都不统一。

     

    简单列举下几大厂商的引擎:

    浏览器 渲染内核 JS引擎
    IE/Edge Trident(<=IE10);EdgeHTML JScript(<IE9);Chakra(IE9+及Edge)
    Safari Webkit/Webkit2 JSCore/Nitro(4+)
    Chrome Chromium(Webkit);Blink V8
    Firefox Gecko SpiderMonkey(<3.0);TraceMonkey(<3/6);JaegerMonkey(4.0+)
    Opera Presto;Blink Futhark(9.5-10.2);Carakan(10.5+)

     

    一、几大厂商浏览器内核简介

    IE/Edge:微软的IE浏览器浏览器更新至IE10后,伴随着WIN10系统的上市,迁移到了全新的浏览器Edge。除了JS引擎沿用之前IE9就开始使用的查克拉(Chakra),渲染引擎使用了新的内核EdgeHTML(本质上不是对Trident的完全推翻重建,而是在Trident基础上删除了过时的旧技术支持的代码,扩展和优化了对新的技术的支持,所以被看做是全新的内核)。

    Safari:Safari自2003年面世,就一直是苹果公司的产品自带的浏览器,它使用的是苹果研发和开源的Webkit引擎。Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来。Webkit2发布于2010年,它实现了元件的抽象画,提高了元件的重复利用效率,提供了更加干净的网页渲染和更高效的渲染效率。另外,Webkit也是苹果Mac OS X系统引擎框架版本的名称,主要用于Safari、Dashboard、Mail。

    Chrome:提到Chrome浏览器,一般人会认为使用的Webkit内核,这种说法不完全准确。Chrome发布于2008年,使用的渲染内核是Chromium,它是fork自Webkit,但把Webkit梳理得更有条理可读性更高,效率提升明显。2013年,由于Webkit2和Chromium在沙箱设计上的冲突,谷歌联手Opera自研和发布了Blink引擎,逐步脱离了Webkit的影响。所以,可以这么认为:Chromium扩展自Webkit止于Webkit2,其后Chrome切换到了Blink引擎。另外,Chrome的JS引擎使用的V8引擎,应该算是最著名和优秀的开源JS引擎,大名鼎鼎的Node.js就是选用V8作为底层架构。

    Firefox:火狐的内核Gecko也是开源引擎,任何程序员都能为其提供扩展和建议。火狐的JS引擎历经SpiderMonkey、TraceMonkey到现在的JaegerMonkey。其中JaegerMonkey部分技术借鉴了V8、JSCore和Webkit,算是集思广益。

    Opera:Opera在2013年V12.16之前使用的是Opera Software公司开发的Presto引擎,之后连同谷歌研发和选择Blink作为Opera浏览器的排版内核。

     

    二、国内的浏览器内核现状

    从全球范围内看,Chrome浏览器的市场份额遥遥领先,IE/Edge由于微软系统的市场占有率优势,也有相当大的使用比例,这两者合计占据了市场近80%比例。

    国内市场乱象横生,但Chrome和IE/Edge也占据了超过50%的市场占有率,另外,国内浏览器厂商(QQ、2345、搜狗、猎豹、UC、360)也有一定的市场占有率。总结国内厂商内核来看,一般为三类:一、使用的Trident单核,如:2345、世界之窗;二、使用Trident+Webkit/Blink双核,如:UC、猎豹、360、百度;三、使用Webkit/Blink单核,如:搜狗、遨游。

    总之,国内并没有优秀的自研内核,通常都是使用的Webkit/Blink 或者 Trident 内核,除此之外的差异通常体现在体验扩展和各自的商业诉求上。

     

    三、移动浏览器内核

    通常指的是移动设备系统自带的浏览器内核。IOS设备内置Safari使用的Webkit,同苹果PC一致;Andriod4.4之前版本系统浏览器内核是Webkit,之后切换到Chromium/Blink;WinPhone8及以上使用的是Trident。

    值得注意的是,由于系统环境条件及功能差异,不同浏览器内核在PC和移动端都有特定的优化或扩展定制,所以在具体的使用中就存在差异。

  • 相关阅读:
    洛谷—— P2234 [HNOI2002]营业额统计
    BZOJ——3555: [Ctsc2014]企鹅QQ
    CodeVs——T 4919 线段树练习4
    python(35)- 异常处理
    August 29th 2016 Week 36th Monday
    August 28th 2016 Week 36th Sunday
    August 27th 2016 Week 35th Saturday
    August 26th 2016 Week 35th Friday
    August 25th 2016 Week 35th Thursday
    August 24th 2016 Week 35th Wednesday
  • 原文地址:https://www.cnblogs.com/lcword/p/9597383.html
Copyright © 2011-2022 走看看