平时我们所说的浏览器内核,一般是指一个浏览器最核心的部分——“Rendering Engine”,直译过来也就是“渲染引擎”,也被称为“排版引擎”、“解释引擎”。主要就是对网页语法的解释(html、javascript),以及完成对网页的渲染和显示。取得网页的内容、整理信息、以及计算网页的显示方式,然后会输出至显示器或者打印机。不仅仅是浏览器,以及电子邮件客户端和其他需要编辑显示网络内容的应用程序都是需要"排版引擎"的。
不同浏览器有不同的渲染引擎,同一段前端代码,经过不同的渲染引擎,对网页编写语法的解释也会有所不同,在不同的浏览器中显示的效果也不同。所以我们测试人员,在测试中要考虑到不同的浏览器内核,会做相应的适配性测试。
浏览器内核主要分为有四种:
Trident
Trident,也就是IE内核。好奇查了一下trident的汉语意思,是三叉戟、三叉鱼叉。从1997年的IE4首次被使用。同时,trident也是一款开放性的内核,其内部的接口内核设计得相当成熟。市面上也有很多非IE浏览器采用的这种内核,如傲游、the world、Avant、腾讯TT、Netscape 8、NetCaptor、Sleipnir、GOSURF、GreenBrowser和KKman等。
因为借助Windows,所以trident内核长期被大众使用。导致微软很长时间没有更新trident内核。使得trident几乎与W3C标准脱节。二是trident内核中许多bug没有得到及时解决。三是很多致力于开源的开发者认为trident内核不安全,转向了其他浏览器如Firefox和Opera。
代表浏览器:IE系列、the world、腾讯TT等。
Gecko
Firefox采用的就是这种内核。gecko是代码完全开源,因此可开发性很高,插件也挺多的。也是因为是开源内核,很受大家的喜爱。虽然年轻,但是市场占有率能够迅速提高。
gecko和trident也有一定的关系,因为trident没有采用W3C的标准,引起一些微软内部人士的不满,他们联合netscape的一些员工创办了Mozilla,重新在原有mosaic的基础上,开发了gecko。不过,使用gecko内核的还是Firefox最多,也被称为Firefox内核。
Presto
Opera浏览器采用的是presto内核。presto本身就是快速的意思。名如其意,本身presto的特点就是渲染速度优化达到了机制,也是目前市面上公认的最快的浏览器内核。但是,缺点就是网页的兼容性不是很好。
实际上这是一个动态内核,与前面几个内核的最大的区别就在脚本处理上,Presto有着天生的 优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行Javascrīpt的时候有着最快的速度,根据在同等条件下的测 试,Presto内核执行同等Javascrīpt所需的时间仅有Trident和Gecko内核的约1/3(Trident内核最慢,不过两者相差没有 多大)。但是,presto是商业内核,限制了其本身的发展。
代表浏览器Opera等。
Webkit
这个webkit内核,也是苹果公司的内核,同时也是Chrome的内核。苹果浏览器Safari使用的内核。webkit开发源代码,但是安全性在国内还是比较高的。
代表浏览器:Safari、Chrome