浏览器内核
浏览器是前端开发必不可少的东西,没有了浏览器,前端再好的代码也都是白给,而浏览器内核也是浏览器必不可少的东西。但是大家有没有真正的深入了解过浏览器呢?
内核,即:引擎
排版引擎(layout engine),也称为浏览器引擎(browser engine)、页面渲染引擎(rendering engine)或样版引擎,它是一种软件组件,负责获取标记式内容(如HTML、XML及图像文件等等)、整理信息(如CSS及XSL等),并将排版后的内容输出至显示器或打印机。所有网页浏览器、电子邮件客户端、电子阅读器以及其它需要根据表示性的标记语言(Presentational markup)来显示内容的应用程序都需要排版引擎。
浏览器内核又可以分成两部分
- 渲染引擎(layout engineer 或者 Rendering Engine)和 JS 引擎
- JS 引擎则是解析 Javascript 语言,执行 javascript 语言来实现网页的动态效果。
- 最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎。常见的浏览器内核可以分这四种:Trident、Gecko、Blink、Webkit。
Trident内核
- Trident(IE内核)
- Trident内核代表产品Internet Explorer,又称其为IE内核。Trident(又称为MSHTML),是微软开发的一种排版引擎。国内很多的双核浏览器其中之一就是Trident,美名其曰“兼容模式”。
- 代表:IE、傲游、世界之窗浏览器、Avant、猎豹安全浏览器、360极速浏览器、百度浏览器等。
- Window10发布后,IE将其内置浏览器命名为Edge(原名斯巴达),使用了新内核Edge引擎。
Gecko(Firefox)火狐
- Gecko(Firefox)
- Gecko内核代表作品Mozilla FirefoxGecko是一套开放源代码的、以C++编写的网页排版引擎。Gecko是最流行的排版引擎之一,仅次于Trident。使用它的最著名浏览器有Firefox、Netscape6至9。可惜这几年已经没落了,比如打开速度慢、升级频繁、界面不够友好,以及猪一样的队友flash、神一样的对手Chrome。
Webkit(Safari)
- Webkit(Safari)
- 苹果公司自己的内核,也是苹果的Safari浏览器使用的内核。
- WebKit内核代表作品Safari、Chromewebkit 是一个开源项目,包含了来自KDE项目和苹果公司的一些组件,主要用于Mac OS系统,它的特点在于源码结构清晰、渲染速度极快。缺点是对网页代码的兼容性不高,导致一些编写不标准的网页无法正常显示。主要代表作品有Safari和Google的浏览器Chrome。
Presto(Opera) 欧朋
- Presto(Opera)
- Presto内核代表作品OperaPresto是由Opera Software开发的浏览器排版引擎,供Opera 7.0及以上使用。它取代了旧版Opera 4至6版本使用的Elektra排版引擎,包括加入动态功能,例如网页或其部分可随着DOM及Script语法的事件而重新排版。现在,Opera宣布加入谷歌阵营,弃用了Presto。
Blink(Chrome)
- Blink(Chrome)
- 有Google和Opera Software开发的浏览器排版引擎,2013年4月发布,现在Chrome内核是Blink。Blink其实是webkit的分支,大部分国产浏览器最新版都采用Blink内核。
移动端的浏览器内核,主要是系统内置浏览器的内核
- 目前移动设备浏览器上常用的内核有Webkit、Blink、Trident、Gecko,其中苹果iOS平台主要是Webkit,Android4.4之前Android系统浏览器的内核是Webkit,Android4.4之后使用Blink,Windows Phone 8系统浏览器内核是Trident。