Web前端培训中经常讲到浏览器的一些原理和使用。面对市面上众多的浏览器,开发人员如何掌控程序的兼容性呢?实际上,许多浏览器都使用了相同的内核,了解其内核就能对浏览器有一个清晰的归类。浏览器内核分成两部分:排版引擎和JavaScript引擎。排版引擎负责将取得的网页内容(如HTML、CSS等)进行解析和处理,然后显示到屏幕中。JavaScript引擎用于解析JavaScript语言,通过执行代码来实现网页的交互效果。下面分别介绍一些常见的排版引擎和JavaScript引擎。
1.排版引擎
( 1) Trident
Trident是Intemet Explorer(IE)浏览器使用的引擎。Trident在Windows 操作系统中被设计为一个功能模块,使得其他软件的开发人员可以便捷地将网页浏览功能加入到其开发的应用程序里。
国内很多的双松”览器提供了“兼容模式”,该模式便是使用了Trident引擎。其代表软件有遨游、世界之窗、QQ浏览器、猎豹安全浏览器、360安全浏览器、360极速浏览器等。
(2) EdgeHTML
微软公司在Windows 10操作系统中提供了一个新的浏览器Microsoft Edge,其最显著的特点是使用了新引擎EdgeHTML。EdgeHTML在速度方面有了极大的提升,在Trident基础上删除了过时的旧技术支持代码,增加了许多对现代浏览器的技术支持。
(3) Gecko
Gecko是Mozilla FireFox(火狐浏览器)使用的引擎,其特点是源代码完全公开,可开发程度很高,全世界的程序员都可以为其编写代码、增加功能。Gecko原本是由网景公司开发的,现在由Mozilla基金会维护。Gecko是跨平台的,支持在Windows、Linux和macOS等操作系统上运行。
(4)WebKit
WebKit是一个开放源代码的浏览器引擎,其所包含的WebCore排版引擎和JavaScriptCore引擎来自于KDE项目组的KHTML和KJS。苹果公司采用了KHTML作为开发Safari 浏览器的引擎后,衍生出了WebKit引擎,并按照开源协议开放了 WebKit的源代码。WebKit具有高效稳定、兼容性好、源码结构清晰、易于维护的特点。Google Chrome 浏览器也普经使用过WebKit引擎。
(5)Blink
Blink 是一个由Google 公司和Opera Software ASA 开发的浏览器排版引擎,Google公司将这个引擎作为开源浏览器Chromium项目的一部分。Blink是WebKit中 WebCore组件的一个分支,并且在Chrome(28及后续版本)、Opera(15及后续版本)等浏览器中使用。目前国内大部分浏览器都采用了WebKit或Blink内核,一些双核浏览器将其作为“急速模式”的内核。在移动设备中,iPhone和iPad等苹果iOS平台使用Webkit内核;Android 4.4之前的Android系统浏览器内核是Webkit,在Android 4.4系统中更改为Blink。
2.JavaScript引擎
(1)Chakra
Chakra是微软公司在E9~11、Microsoft Edge等浏览器中使用的JavaScript 引擎。目前,该引擎的核心部分已经开源,其开源版本称为ChakraCore COn。
(2) SpiderMonkey
SpiderMonkey是Mozilla项目中的一个JavaScript引擎,主要用于Firefox浏览器。其后又发布了TraceMonkey、JaegerMonkey、lonMonkey、OdinMonkey等改进版引擎,提高了性能。
(3)Rhino
Rhino是Mozilla项目中的一个使用Java语言编写的JavaScript引擎,它被作为Java SE6上的默认JavaScript引擎,主要用于为Java执行环境提供JavaScript的支持。
( 4 ) JavaScriptCore
JavaScriptCore 是苹果在 Safari 浏览器使用的JavaScript 引擎。
(5)V8
V8是Google为Chrome浏览器开发的JavaScript引擎,具有较快的执行速度。V8非常受欢迎,其他一些软件也整合了V8引擎,如Node.js。