浏览器在生活中运用广泛,而如今的浏览器的概念与PC时代大不相同。作为一个web开发者,只有针对不同的浏览器渲染问题“对症下药”方能药到病除,才能避免踩到不必要的浏览器深坑。 liulanqi

浏览器内核分为两部分:渲染引擎和js引擎。

渲染引擎

渲染引擎(renderting engine)又称为排版引擎,通常的浏览器内核就是指浏览器的渲染引擎。它负责解释解和渲染网页(包括html和js)。不同的浏览器内核的渲染方式不同,因此也就出现了不同的浏览器的兼容性问题——兼容性问题并不是程序bug,而是对浏览器渲染机制不了解导致的。

主流的浏览器内核

trindent:代表浏览器为IE。它是微软开发的渲染引擎,主要的使用对象为:IE、傲游、世界之窗浏览器(也许现在已经更换了)。

Gecko:代表浏览器为Mozilla。它是以C++编写的渲染引擎,使用它的对象为Firefox、Netscape6至9。

webkit:代表为safari和chrome。它是苹果公司开源的项目,主要对象为Safari、Google的浏览器Chrome(google基于webkit开发了自己的一套浏览器内核开源项目Chromium,并在此基础上开发自己的blink核心,内置于chrome中)以及各大手机浏览器。

Presto:内核代表作品Opera。不过现在的opera已经采用了google的blink内核。

js引擎

原本js引擎和渲染引擎本没有区别,但是现在js渲染引擎几乎从渲染引擎中独立出来。它负责对浏览器的中的js解释和执行,以达到网页中的一些效果和交互。

主流的js引擎

SpiderMonkey:第一款JavaScript引擎,由Brendan Eich在Netscape Communications时编写,用于Mozilla Firefox 1.0~3.0版本。

V8:开放源代码,由Google丹麦开发,是Google Chrome的一部分。

Chakra:中文译名为查克拉,微软js引擎,用于Internet Explorer 9。

注意:腾讯基于webkit开发自己的一套X5内核,并广泛用在了自己的产品中,例如微信,qq,qq空间,qq浏览器中,凭借微信qq的用户量,X5的份额确实很大。它宣称多网页的渲染,js渲染都有很大的提升,但是有些css3渲染并没有遵循w3c标准导致会出现兼容性,需要单独设置hack,希望X5不要走IE的老路,毕竟内核还是基于webkit内核,自己并没有实力来定制标准。