以前浏览器内核包含了渲染引擎以及js引擎,随着js的职责越来越重,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。
- IE: trident 内核
- Firefox:gecko 内核
- Safari: webkit 内核
- Opera: 以前是 presto 内核, Opera 现已改用 Google Chrome 的 Blink 内核
- Chrome: Blink( 基于 webkit , Google 与 Opera Software 共同开发 )
- HTML解析器解析 DOM 树, 解析为 DOM 树上个节点,同时碰到 style 解析 CSS 样式, 解析为 CSSOM 树
- 当DOM树和CSSOM树都构建完之后,浏览器根据这两个树构建一棵渲染树(具有一定的视觉效果,并按照一定顺序排列在屏幕上)
- 渲染树构建完成以后,浏览器计算所有元素大小和绝对位置
- 布局计算完成后,浏览器在页面渲染元素。经过渲染引擎处理后,整个页面就显示出来
- IE: Chakra; 虽然新版的IE(IE9及之后的版本)以及Edge使用的是Chakra,但老版的IE仍然使用的是Jscript,以及 2018 年后 Edge 决定使用 v8
- Firefox:JaegerMonkey,德文Jäger原意为猎人,结合追踪和组合码技术大幅提高性能,部分技术借凿了V8、JavaScriptCore、WebKit,用于Mozilla Firefox 4.0以上版本。
- Safari: Nitro(SquirrelFish)(Safari)2008年6月2日,WebKit开发团队声明了 SquirrelFish,一个能极大地提升Safari解释脚本速度的JavaScript引擎。SquirrelFish是基于寄存器、直接线程的高级字节码引擎。
- Opera: 以前是 presto 内核, Opera 现已改用 Google Chrome 的 Blink 内核
- Chrome: V8;谷歌公司开发的V8浏览器基于C++,在运行JavaScript之前,相比其它的JavaScript的引擎转换成字节码或解释执行,V8将其编译成原生机器码(IA-32, x86-64, ARM, or MIPS CPUs),并且使用了如内联缓存(inline caching)等方法来提高性能。有了这些功能,JavaScript程序在V8引擎下的运行速度媲美二进制程序。 NodeJS其实就是封装了V8。