客户端容器【上】|青训营笔记

84 阅读2分钟

浏览器架构的演进:

1、单线程架构:所有模块运行在同一进程中,包括网络、插件、JavaScript运行环境。

2、多进程架构(多数浏览器):主进程、网络进程、渲染进程、GPU进程、插件进程。

3、面向服务架构:将原来的UI、数据库、文件等作为一个独立的基础服务。

单线程架构的扩展性低、安全性低、稳定性低、会有一些卡顿,多线程架构扩展性中等、安全性较高、稳定性高,很流畅,而面向服务架构的扩展比多线程架构更好。

多线程分工:

浏览器(主进程):主要负责页面展示逻辑,用户交互,子进程管理;包括地址栏、书签、前进、后退、收藏夹等。

GPU进程:负责UI绘制,包含整个浏览器全部UI。

网络进程:网络服务进程,负责网络资源加载。

标签页(渲染进程):控制tab内的所有内容,将Html,Css和JavaScript转换为用户可交互的网页。

插件进程:控制网站运行的插件,比如flash、ModHeader等。

几个主要的内核:

Trident内核:使用的浏览器为IE4-11,js引擎是JScript/Chakra,诞生于1994年,IE8以前使用JScript引擎,IE9开始使用Chakra引擎。

Gecko:主要是Firefox使用,js引擎是SpiderMonkey,Gecko内核主要用在Firefox浏览器上,同时是一个跨平台的内核。

Webkit:主要是Safari使用,js引擎是JavaScriptCore,其由Apple公司技术团队开发,并在2005年开源。

Blink:主要是Chrome、Opera使用,js引擎是V8,是Google基于Webkit开发的内核,在Webkit的基础上加入多进程,沙箱技术,于2013年开源。

Edge:主要是Edge使用,js引擎是Chakra,2015年由微软发布,用于Edge浏览器上,由于性能较差,运行不稳定等原因,2018年微软将Edge浏览器内核迁移到Chromium

Trident+Web kit(Blink) :国产浏览器如:QQ、360、搜狗、UC等,早期银行系统都是在IE上进行开发,想要支持银行系统就切换到Trident内核,想要体验就切到Webkit内核。