盘点各大主流浏览器的渲染引擎及js引擎

摘要:浏览器内核是浏览器的核心,主要指的是浏览器的渲染引擎,是Web平台技术中一系列标准(HTML、CSS、ECMAScript、WebGL、Web Storage等等)的具体实现,不同的浏览器内核对网页的语法解释也不同,因此网页开发者需要在不同内核的浏览器中测试网页的渲染效果。

浏览器内核是浏览器的核心,主要指的是浏览器的“渲染引擎”,是 Web 平台技术中一系列标准(HTML、CSS、ECMAScript、WebGL、Web Storage 等等)的具体实现,不同的浏览器内核对网页的语法解释也不同,因此网页开发者需要在不同内核的浏览器中测试网页的渲染效果。

各大主流浏览器的内核,基本上是:

  • Trident: 俗称IE内核;
  • Gecko:Firefox 是基于 Gecko 开发;
  • KHTML:Konqueror 浏览器的渲染引擎;
  • WebKit:Safari 浏览器内核;
  • Blink:统称为 Chromium 内核或 Chrome 内核。

渲染引擎和JS引擎

在早期,浏览器内核也是包含 JavaScript 引擎的,后来由于 JS 引擎越来越独立,浏览器内核就倾向于单指渲染引擎,以下是各大主流浏览器的所使用的内核及 js 引擎:

主流浏览器 内核 js引擎
IE -> Edge Trident->EdgeHTML->Blink JScript(IE3.0-IE8.0)->Chakra(IE9+之后)->V8
Chrome WebKit->Blink V8(大名鼎鼎)
Safari WebKit JavaScriptCore->SquirrelFish(也称Nitro,4+之后)
Firefox Gecko SpiderMonkey(1.0-3.0)-> TraceMonkey(3.5-3.6)->JaegerMonkey(4.0-)
Opera Presto->WebKit->Blink Linear A(4.0-6.1)->Linear B(7.0-9.2)->Futhark(9.5-10.2)->Carakan(10.5-)->V8

注:SpiderMonkey 是第一款 JS 引擎,JavaScript 之父 Brendan Eich 在网景的时候写的。

Presto 是早期 Opera 的内核,但由于市场选择问题,2013 年 2 月 Opera 宣布转向 WebKit 引擎,4 月宣布放弃 WebKit,跟随 Google 新开发的 Blink 引擎。

新的 Edge 的浏览器已经开始使用 Chromium 的 Blink 引擎了,而 EdgeHTML 引擎只在 Window 10 上的 Universal Windows Platform 中被使用。

Blink和V8

Google 起初使用 Webkit 作为 Chrome 浏览器的引擎,后来以 Webkit 引擎为基础创造了 Blink 引擎,所有基于 Chromium 开源浏览器衍生的产品都使用 blink 引擎,而大名鼎鼎的 V8 引擎就是 Chromium-based 浏览器的 JavaScript 引擎。

宽泛的说,Blink 实现了在浏览器页签中所有的渲染工作,其中包括:

  • 实现了 Web 平台中的标准,例如 HTML 标准,包括 DOM、CSS 等;
  • 内置了 V8 引擎用于运行 JavaScript;
  • 从网络堆栈中获取资源;
  • 构建DOM树;
  • 计算样式和布局;
  • 内置了 Chrome Compositor 和绘制图形的能力。

V8 是 Google 打造的开源的、高性能的 JavaScript 和 WebAssembly 引擎,使用 C++ 语言实现。V8 引擎被应用在 Chrome、Nodejs 和其他应用中,V8 引擎可以独立运行,也可以运行在任何的 C++ 程序中。

Blink 作为 Chrome 的内核运行在渲染进程中,负责几乎所有发生在浏览器页签中的工作,在实现 Web 规范中定义的标准的同时也实现了属于 Chrome 特有的功能。V8 是 Blink 的 JavaScript 引擎,负责运行 JavaScript 脚本。

Chrome和Chromium

  • Chromium 是一个由 Google 主导开发的网页浏览器,以 BSD 许可证等多重自由版权发行并开放源代码。
  • Chrome 是由 Google 开发的一款 Web 浏览器,Chrome的特点是简洁、快速、高效,Chrome 是 Chromium 的稳定版。
  • Chromium 是谷歌的开源项目,开发者们可以共同去改进它,然后谷歌会收集改进后的 Chromium 并发布改进后安装包。
  • Chrome 不是开源项目,谷歌会把 Chromium 的东西更新到 Chrome 中。
  • Chromium 不用安装,下载下来的是压缩包,解压后直接就可以使用,Chrome 需要安装。
  • Chromium 功能比 Chrome 多,因为新功能都是先在 Chromium 中使用,等完善后才添加到 Chrome 中,相对的 Chrome 就要比 Chromium 稳定很多不容易出错。
  • Chromium 不开放自动更新功能,所以用户需手动下载更新,而 Chrome 则可自动连上 Google 的服务器更新。

可以这样理解,Chromium 是体验版,Chrome 是正式版,Chrome 和 360、QQ 和 Edge 都是基于 Chromium 内核的浏览器。

版权声明:本文为博主原创文章,未经博主允许不得转载。http://www.dedenotes.com/html/render-engine.html
(1)
打赏 微信扫一扫 微信 支付宝 QQ 扫码打赏

meta

Dedenotes 赞(3)

meta 是 html 语言 head 区的一个辅助性标签,位于文档的头部,不包含任何内容,标签的属性定义了与文档相关联的名称/值对。meta 标签可提供相关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。

防止表单重复提交的 4 种方法

Dedenotes 赞(3)

平时开发的项目中可能会出现下面这些情况:由于用户误操作,多次点击表单提交按钮;由于网速等原因造成页面卡顿,用户重复刷新提交页面;黑客或恶意用户使用 Postman 等工具重复恶意提交表单(攻击网站)。

HTTP消息结构 HTTP请求报文和响应报文的格式

Dedenotes 赞(3)

HTTP 协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,基于 TCP/IP 通信协议来传递数据(HTML 文件, 图片文件, 查询结果等),所有的 WWW(World Wide Web)文件都必须遵守这个标准。