0%
渲染引擎
- 渲染引擎的主要作用是,将网页代码渲染为用户视觉可以感知的平面文档。
- Firefox:Gecko 引擎
- Safari:WebKit 引擎
- Chrome:Blink 引擎
- IE: Trident 引擎
- Edge: EdgeHTML 引擎
- 渲染引擎处理网页,通常分成四个阶段。
- 解析代码:HTML 代码解析为 DOM,CSS 代码解析为 CSSOM(CSS Object Model)。
- 对象合成:将 DOM 和 CSSOM 合成一棵渲染树(render tree)。
- 布局:计算出渲染树的布局(layout)。
- 绘制:将渲染树绘制到屏幕。
- 重绘回流 优化技巧
- 读取 DOM 或者写入 DOM,尽量写在一起,不要混杂。不要读取一个 DOM 节点,然后立刻写入,接着再读取一个 DOM 节点。
- 缓存 DOM 信息。
- 不要一项一项地改变样式,而是使用 CSS class 一次性改变样式。
- 使用
documentFragment
操作 DOM - 动画使用
absolute
定位或fixed
定位,这样可以减少对其他元素的影响。 - 使用
window.requestAnimationFrame()
,因为它可以把代码推迟到下一次重绘之前执行,而不是立即要求页面重绘。
JavaScript 解释器(又称 JavaScript 引擎)
- 常见的一些 JavaScript 虚拟机
- Chakra (Microsoft Internet Explorer)
- Nitro/JavaScript Core (Safari)
- Carakan (Opera)
- SpiderMonkey (Firefox)
- V8 (Chrome, Chromium)