浏览器的组成结构
Posted liea
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浏览器的组成结构相关的知识,希望对你有一定的参考价值。
浏览器的组成结构
用户界面(User Interface) - 包括地址栏、前进/后退按钮、书签菜单等。除了浏览器主窗口显示的您请求的页面外,其他显示的各个部分都属于用户界面。
浏览器引擎(Browser engine) - 在用户界面和渲染引擎之间传送指令。
渲染引擎(Rendering engine) - 负责显示请求的内容。如果请求的内容是 html,它就负责解析 HTML 和 CSS 内容,并将解析后的内容显示在屏幕上。
也可以叫呈现引擎(Rendering Engine)或者布局引擎(Layout Engine)
默认情况下,渲染引擎可显示 HTML 和 XML 文档与图片。通过插件(或浏览器扩展程序),还可以显示其他类型的内容;例如,使用 PDF 查看器插件就能显示 PDF 文档。但是在本章中,我们将集中介绍其主要用途:显示使用 CSS 格式化的 HTML 内容和图片。
浏览器(Firefox、Chrome 浏览器和 Safari)是基于两种渲染引擎构建的。Firefox 使用的是 Gecko,这是 Mozilla 公司“自制”的渲染引擎。而 Safari 和 Chrome 浏览器使用的都是 WebKit。
浏览器 渲染引擎(开发语言) 脚本引擎(开发语言) Chrome Blink (c++) V8 (c++) Opera Blink (c++) V8 (c++) Safari Webkit (c++) javascript Core (nitro) FireFox Gecko (c++) SpiderMonkey (c/c++) Edge EdgeHTML (c++) Chakra JavaScript Engine (c++) IE Trident (c++) Chakra JScript Engine (c++) Firefox在2017年启用了新的web引擎Quantum,Quantum 以 Gecko 引擎为基础,同时利用了 Rust 的良好并发性和 Servo 的高性能组件,为 Firefox 带来了更多的并行化和 GPU 运算,让 Firefox 更快更可靠。
2015 年 3 月,微软将放弃自家Edge:转而开发Chromium内核浏览器。
WebKit 是一种开放源代码渲染引擎,起初用于 Linux 平台,随后由 Apple 公司进行修改,从而支持苹果机和 Windows。有关详情,请参阅 webkit.org
网络(Networking) - 用于网络调用,比如 HTTP 请求。其接口与平台无关,并为所有平台提供底层实现。
用户界面后端(UI Backend) - 用于绘制基本的窗口小部件,比如组合框和窗口。其公开了与平台无关的通用接口,而在底层使用操作系统的用户界面方法。
JavaScript 解释器(JavaScript Interpreter)。用于解析和执行 JavaScript 代码,如 V8 引擎。
JS引擎线程负责解析Javascript脚本,运行代码。
JS引擎一直等待任务队列中任务的到来,然后加以处理,一个Tab页(renderer进程)中只有一个JS线程在运行
数据存储(Data Persistence)。这是持久层。浏览器需要在硬盘上保存各种数据,例如 Cookie。新的 HTML 规范 (HTML5) 定义了“网络数据库”,这是一个完整(但是轻便)的浏览器内数据库。
以上是关于浏览器的组成结构的主要内容,如果未能解决你的问题,请参考以下文章