浏览器内核的解析和对比

浏览器内核的解析和对比

取材自 浏览器内核的解析和对比

浏览器的构成

浏览器可以分为两部分:shell+内核。

Shell是指浏览器的外壳:例如菜单,工具栏 等。主要是提供给用户界面操作,参数设置等等。它是调用内核来实现各种功能的。

内核是基于标记语言显示内容的程序或模块。

浏览器内核

浏览器内核的组成

浏览器内核可以分成两部分:渲染引擎(layout engineer或者Rendering Engine)和JS引擎。

  • 渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。

  • JS引擎:解析和执行javascript来实现网页的动态效果。

最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。

常见的浏览器内核

  • Trident内核[又称MSHTML]:IE,MaxThon,TT,The World,360,搜狗浏览器等。微软开发的渲染引擎,市场占有率高,但与W3C标准脱节,大量Bug等安全问题没有得到解决。
  • Gecko内核:Netscape6及以上版本,Firefox,MozillaSuite/SeaMonkey等。功能强大、丰富,可以支持很多复杂网页效果和浏览器扩展接口,但是要消耗很多的资源,比如内存。
  • Presto内核:Opera7及以上。[Opera内核原为:Presto,现为:Blink;]。Presto内核被称为公认的浏览网页速度最快的内核,这得益于它在开发时的天生优势,在处理JS脚本等脚本语言时,会比其他的内核快3倍左右,缺点就是为了达到很快的速度而丢掉了一部分网页兼容性。
  • Webkit内核:Safari,Chrome等。[Chrome的:Blink(WebKit的分支)]。优点是网页浏览速度较快,虽然不及 Presto 但是也胜于 Gecko 和 Trident,缺点是对于网页代码的容错性不高,也就是说对网页代码的兼容性较低,会使一些编写不标准的网页无法正确显示。

浏览器内核实现原理

渲染流程如下所示:

渲染引擎运作流程

Mozilla架构设计:界面和实现分离。采用标记语言,JavaScript,C++来开发。JSEngine就是指SpideMonkey,Layout就是指Gecko。Mozilla的一个关键部分是XPCOM和NSPR。

Mozilla架构设计

Webkit的处理流程:

Webkit的处理流程

你可能感兴趣的:(web前端)