浏览器的发展史
历史阶段
浏览器 | 时间 | 内核 | 所属公司 | 说明 |
---|---|---|---|---|
Mosaic | 1993 | - | - | 1997 年结束,其核心成员创建了网景 |
Navigator | 1994 | - | 网景 | 昔日霸主,1998 年结束,Firefox的前身 |
IE | 1995 | Trident | 微软 | 凭借捆绑操作系统击败网景 |
Opera | 1996 | Presto/Blink | Opera Software | 后期与chrome合作研发了Blink |
Mozilla | 1998 | Gecko | 网景 | 2003 年结束,并成立基金会 |
Firefox | 2003 | Gecko | Mozilla基金会 | 主要靠 Google 资金存活,曾经主流过 |
Safari | 2003 | WebKit | 苹果 | |
Chrome | 2008 | Chromium/Blink | 谷歌 | 早期WebKit内核,受限于苹果,今日霸主 |
Edge | 2015 | Chromium | 微软 | 偷家chrome,照搬chrome基础上扩展优化 |
- 浏览器的发展史相当复杂的,这里只是做个简单的总结;
- 浏览器内核一般由
JS
引擎、排版渲染引擎与其它三部分组成; - 熟知的
JS
引擎有chrome
的V8,IE9开始的查克拉
(Chakra
); IE6
的兼容问题不能完全归罪于微软,它走在了标准的前面,只是后期一家独大,没去兼容标准;Chrome
2008年发布时的渲染内核为fork自Webkit优化后的Chromium
,并于2013年更换为Blink
引擎;Opera
2013年开始舍弃旧的Presto
引擎,更换为与谷歌共同研发的Blink
引擎;
浏览器线程
浏览器内核是多线程的,通常有以下几个线程组成:
GUI
渲染线程 负责渲染浏览器界面,解析HTML
,CSS
,生成DOM树
与CSS规则树
,合并生成Render
树,布局和绘制,以及后续界面的重绘与回流等。JS
引擎线程JS
内核,如V8
引擎,负责解析js
脚本并执行。事件触发线程 是浏览器的功能,
定时器触发线程
xhr
线程
注意:GUI
渲染线程与 JS
引擎线程是互斥的。
我们常说的 JS
是单线程的,是指 JS
引擎线程