各种浏览器引擎傻傻分不清楚?终于有人说清楚了!
浏览器是互联网时代必不可少的工具,是我们接入互联网最重要的通道之一。如今大大小小的浏览器琳琅满目,占据着各种平台和终端。
虽然浏览器种类繁多,但最常见的还是 Chrome、FireFox、Safari、Edge、Opera 等主流的浏览器。在这几个浏览器的市场占有率面前,其他浏览器的份额几乎可以忽略不计了。
即便是这几个主流的浏览器,还有不少共用的技术,比如引擎技术。今天就来聊下浏览器背后的各种引擎,作为 Web 开发人员应该比较关心。
说到浏览器引擎,你可能经常看到这些名词:V8,WebKit,Gecko,Blink,SpiderMonkey………这些都是什么呢?
下面是浏览器的构造组成示意图。
浏览器构造
所谓浏览器引擎,就是驱动浏览器工作的模块,就跟生活中的汽车引擎一样。浏览器包含渲染引擎和 JavaScript 引擎。
渲染引擎负责解析页面 DOM 文档和 CSS 规则等,将内容渲染成带样式的页面,也称为排版引擎。常见的渲染引擎有 Blink(用于 Chrome 和 Opera,基于 WebKit 分支开发)、Gecko(用于 Firefox)、WebKit(用于 Safari)、Trident(用于 IE)和 EdgeHTML(用于 Edge)等。随着 2019 年微软宣布 Edge 将采用 Chromium 内核,IE 也逐渐淡出历史,渲染引擎基本就剩前面三个了。
JavaScript 引擎就是 JS 解释器,用于运行 JavaScript 代码。随着 Node 平台的普及,JavaScript 运行宿主不仅仅局限于浏览器了,因此 JavaScript 引擎实际上可用于多平台,鼎鼎大名的 V8 引擎就是其中的典范。使用 V8 引擎的浏览器主要有 Chrome 和 Opera。除了 V8,还有 Firefox 使用的 SpiderMonkey (曾用于 Netscape)、IE 和 Edge 使用的 Chakra 以及 Safari 使用的 JavaScript Core (Nitro) 。
浏览器引擎
为什么会有这么多引擎?这其实是各大浏览器厂商这么多年相互竞争的结果。
众所周知,90 年代微软凭借 IE 打败了当时的浏览器寡头 Netscape,然后就一家独大。结果 IE 不思进取,内核不兼容标准,不仅用户体验差,更是害惨了广大的前端开发(不过反过来看,也提供了不少工作机会,哈哈)。
过了几年,天下苦 IE 久矣,Firefox 就揭竿而起,用户纷纷云集响应。同时还有 Safari 和 Chrome 异军突起,逐渐崭露头角,如今 Chrome 已成为新的霸主。
所幸的是这些浏览器后起之秀大部分是兼容标准的,这样就算是不同厂商推出的浏览器,在语言的解释和执行上至少具有一致性。这就是广大前端开发的福音了,一套代码可以运行在各种浏览器上(尽管还是有细微的差异,这也是开发经验的用武之地了)。
随着微软转向 Chromium 阵营,这个新巨头几乎占据了浏览器 80% 的市场份额。屠龙少年自己会不会也变成龙?希望不会,毕竟还有 Firefox 和 Safari 等竞争对手存在,有竞争才能有进步。
看到这个颇有气质的 logo,不来关注下吗?
发表评论 (审核通过后显示评论):