一、 浏览器内核 要搞清楚浏览器内核是什么,首先应该先搞清楚浏览器的构成。简单来说浏览器可以分为两部分,shell+内核。其中 shell的种类相对比较多,内核则比较少。Shell是指浏览器的外壳:例如菜单,工具栏等。主要是提供给用户界面操 作,参数设置等等。它是调用内核来实现各种功能的。内核才是浏览器的核心。内核是基于标记语言显示内容的程序或模块。也有一些浏览器并不区分外壳和内核。 从 Mozilla将 Gecko独立出来后,才有了外壳和内核的明确划分。 1. 什么是浏览器内核 浏览器内核又可以分成两部分:渲染引擎(layout engineer或者 Rendering Engine)和 JS引擎。它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至 显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内 容的应用程序都需要内核。(JS引擎则是解析Javascript语言,执行javascript语言来实现网页的动态效果。最开始渲染引 擎和 JS引擎并没有区分的很明确,后来 JS引擎越来越独立,内核就倾向于只指渲染引擎。 1) 常见的浏览器内核 Trident(又称为 MSHTML),是微软的视窗操作系统(Windows)搭载的网页浏览器—Internet Explorer的页面渲染引擎的名称,目前是互联网上最流行的排版引擎。 Gecko是套开放源代码的、以 C++编写的页面渲染引擎。Gecko是跨平台的,能在 Microsoft Windows、Linux和 Mac OS X等主要操作系统上运行。它是最流行的页面渲染引擎之一,其流行程度仅次于 Trident。 Webkit是苹果公司基于 KHTML开发的。他包括 Webcore和 JavaScriptCore(SquirrelFish,V8)两个引擎。 Presto由 Opera Software公司开始的,用于 Opera的渲染引擎。Macromedia Dreamweaver (MX版本及以上)和 Adobe Creative Suite 2也使用了 Presto的内核。 2) JS引擎 JavaScript最初由网景公司的 Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。以它为基础,制定了 ECMAScript标 准。他的起源并不是如《Javascript高级程序设计》书中所述,是 Brendan Eich自主发明的。(参考 aimingoo的考证文章)JavaScript在浏览器的实现中还必须含有 DOM和 BOM。Web浏览器一般使用公共 API来创建主机对象来负责将 DOM对象反射...