浏览器内核-基本常识

    一.  浏览器内核的概念

    首先解释下什么叫做浏览器内核,英文名为Rendering Engine,我更愿意翻译为渲染引擎.虽然比较直白,但是浏览器内核的含义在我看来就是如此.它主要的职能就是负责对网页的语法进行解释并渲染以显示页面.它决定了浏览器如何显示网页的内容以及页面的格式信息.因为不同的浏览器内核对于网页编写语法的解释不同,所以同一页面在不同内核的浏览器下,效果可能也不同.

    说到这里我们可能也会明白为什么会有所谓CSS和Javascript兼容的问题,就是因为不同浏览器的内核不同,渲染引擎有所区别引起的.

    1.  IE内核(Trident)

    IE内核算的上是大名鼎鼎了,由微软研发最早在IE4种被采用,很多浏览器都基于此内核.Trident由于IE版本的原因,所以更新和研发都比较缓慢,尤其在老版本的IE上与W3C的标准严重脱节,并且存在很多严重BUG.比较典型的就是在中国还有大量市场的IE6和IE8,它们本身存在一些缺陷导致性能和兼容上存在问题.比如IE8的Javascript引擎是Jscript,IE9开始用Chakra,这两个版本的区别就很大,所以一些我们在IE8上运行有卡顿的JS特效可能在IE9上就比较流畅.

    目前国内大部分"双核"或者"多核"浏览器中,对于IE内核下的浏览就叫"兼容模式",其他浏览器内核下的浏览叫"极速模式".

    2.  Webkit内核(Safari内核,Chrome内核原型)

    之所以紧跟着IE内核就说到Webkit就是因为它实在太火了,如果说IE内核的重要性是因为微软垄断式的捆绑了IE,那么Webkit则是通过出色的性能创造了现如今的地位.Webkit由KHTML发展而来,是苹果给开源世界的一大贡献.Webkit目前的主要应用还是在Safari浏览器上,同时也作用在比如360浏览器,搜狗浏览器上.

    浏览器内核-基本常识

    3.  Chromium

    看名字也许就能才出来这是和Chrome相关的东东,Chromium 就是 WebKit,维基百科里面并没有将Chromium从WebKit分出来.记得以前看过一个大牛的博文说过,Chromium把WebKit的代码梳理得可读性提高很多,所以以前可能需要一天进行编译的代码,现在只要两个小时就能搞定.

    在Google最新的计划中,打算彻底和Webkit说再见,自主研发Blink渲染引擎内置到Chrome中,通过此举降低Webkit即苹果在浏览器市场的影响力.

    4.  GecKo

    Firefox(火狐浏览器)就是采用Gecko内核,该内核的代码完全开放,所以全世界的程序员都可以为其编写代码.因为是完全开源的内核,所以受到许多人的青睐,现在市场占用逐步提高中.

    二.  Javascript引擎

    Javascript引擎决定的是浏览器对于Javascript代码解析执行的性能,不同内核浏览器的引擎也是不同的,其中差异性可能会很大,如果不相信就找一款图片插件分别在IE8和IE9下试验看看吧,你一定会发现什么不同的.

    1.  Chakra,IE9新启用的Javascript引擎,性能相比IE8中的Jscript有很大提升.

    2.  V8,Chrome研发的高效Javascript引擎,目前不仅在浏览器中运行良好,Nodejs就是使用了V8引擎.

    3.  KJS,KHTML对应的Javascript引擎.

    简单了解不同浏览器的主要区别,本文只介绍了日常比较常用的,还有一些其他内容大家可以维基百科.了解一些这方面的内容,一个是更好的理解浏览器的渲染机制,另一个也是作为常识的知识储备~

转载于:https://my.oschina.net/blogshi/blog/194693