浏览器对于每个Tab页都会调用浏览器内核开启一个独立的进程(有些浏览器会将相同域名Tab的进程做一定的合并),去做渲染、事件触发、运行JS、URL解析等等事情。现在因为JS的用途越来越广,慢慢浏览器内核倾向于分开为两个部分:渲染引擎(layout engineer)、JS引擎(JS engineer)。
1. Internet Explore --- Trident/Edge --- '-ms-'
版本 | 渲染引擎 | JS引擎 |
---|---|---|
IE4-IE7 | Trident | JScript(IE3+) |
IE8 | Trident4.0 | JScript |
IE9 | Trident5.0 | Chakra |
IE10 | Trident6.0 | Chakra |
IE11 | Trident7.0 | Chakra |
Edge | Edge | ChakraCore 已开源的JS引擎核心 |
2. Chrome/Safari --- Webkit --- ‘-webkit-’
内核 | 渲染引擎 | JS引擎 |
---|---|---|
Webkit | KHTML引擎 | KJS引擎 |
Webkit | WebCore引擎 | JavaScriptCore引擎 |
Webkit | WebCore引擎 | Nitro引擎(原名:SquirrelFish) |
Webkit | WebCore引擎 | V8引擎 |
现在的Node.js使用的也是V8引擎哦~
谷歌浏览器目前有四个分支,Chromium、Dev、Beta、Stable。
- 1、Chromium:
——Chromium 是谷歌浏览器开源项目,新功能会率先在Chromium上实现,待验证后才会应用在Chrome上,故Chrome的功能会相对落后但较稳定(实际上稳定性也差不多);
——Chromium的更新速度很快,每隔数小时即有新的开发版本。 - 2、Chrome dev:
——基于最新的Chromium Build,经常每周就更新释出的功能;
——与Beta版十分相似,但稳定性较差,不适合公共使用; - 3、Chrome beta:
——基于Chrome dev;
——按月更新;
——崩溃等重大故障较少发生,功能比dev更加完善 - 4、Chrome stable
——基于最新的测试版本,已知Bug均被修复,功能发挥稳定;
——按季度更新;
——稳定性有很大提升,适用于各个环境;
虽然都使用Webkit引擎,但是Safari和Chrome的表现依旧有所不同。
- 这篇文章中提到,当接口地址少一个'/'以致报301时,Chrome可以自动做一个跳转,Safari则不会;
- 这篇文章则提到了Video标签在两个浏览器下不同的默认值;
- 也有帖子提到,同样的页面图片,Safari偏模糊,chrome偏锐利。
3. FireFox --- Gecko --- ‘-moz-’
版本 | 渲染引擎 | JS引擎 |
---|---|---|
FF1.0~3.0 | Gecko | SpiderMonkey |
FF3.5~3.6 | Gecko | TraceMonkey |
FF4.0~至今 | Gecko | JagerMonkey |
FF(Mozilla)开发团队的目标是构建于标准100%兼容的浏览器
4. Opera --- Presto --- ‘-o-’
版本 | 渲染引擎 | JS引擎 |
---|---|---|
Opera4.0~6.0 | Elektra | Linear A引擎 |
Opera7.0~9.2 | Presto | Linear B引擎 |
Opera9.5~10.2 | Presto | Futhark引擎 |
Opera10.5+ | Presto | Carakan引擎 |
Opera 15 (13年7月) | 弃用Presto改用Webkit引擎 | V8 |
13年Chrome和Opera开始使用Google开发的webkit分支Blink引擎
网友评论