当前位置:网站首页>浏览器渲染原理以及重排与重绘
浏览器渲染原理以及重排与重绘
2022-07-05 16:14:00 【爱划水de鲸鱼哥~】
浏览器渲染原理
浏览器渲染分为五个阶段。
第一阶段:HTML解析 --> DOM树
浏览器不能够直接理解 HTML文档,首先对其进行解析,并在解析过程中发出页面渲染所需的各种外部资源请求生成DOM树。
第二阶段: CSS解析 --> CSSOM树
同样浏览器也办法直接理解 CSS 代码,需要将识别并加载的CSS 代码处理成自己理解的 CSSOM 树。
第三阶段: 样式与结构合并 --> 渲染树
浏览器将DOM 树和 CSSOM 树结合在一起生成渲染树(:after :before 等伪元素会在这个环节被构建到 DOM 树中)。
渲染树特点:只包含渲染网页所需的节点。
构建渲染树的过程
- 第一步:从 DOM 树的根节点开始遍历,筛选出所有可见的节点;
- 第二步:对可见节点为其匹配 CSSOM树;
第四阶段: 页面布局 --> 布局渲染树
浏览器对渲染树进行遍历,将元素间嵌套关系以盒子模型的形式写入文档流盒模型,并在布局过程中会计算出元素确切的大小和定位。计算完毕后,将相应的信息写回渲染树上形成“布局渲染树”。
第五阶段: 页面绘制 --> 显示页面
在这一阶段浏览器终于拿到了绘制页面的所有信息,将渲染树上的每一个节点转换成肉眼可见的像素点,最终将页面呈现在我们面前。
重排
当我们修改DOM节点的宽、高或进行隐藏操作时,浏览器就需要重新计算节点的几何属性,然后再将计算的结果绘制出来的过程叫做重排(也叫回流)。
浏览器重排过程

触发重排的条件
- 改变 DOM 树的结构:节点的增减、移动等
- 获取一些需要通过"即时计算"得到值的属性:offsetWidth、offsetHeight、offsetTop、offsetLeft、 scrollTop、scrollLeft、scrollWidth、scrollHeight、clientTop、clientLeft、clientWidth、clientHeight 等属性以及调用 getComputedStyle 方法,或者 IE 的 currentStyle 方法。
重绘
当我们修改DOM的样式(未影响其几何属性)时,浏览器需要重新为元素绘制新的样式过程叫做重绘。
浏览器重绘过程

触发重绘的条件
修改DOM的样式,但未影响其几何属性会发生重绘。
优化
重排和重绘是比较消耗性能的,因此在开发过程中,我们应该避免重排和减少重绘。
本文到此结束
如果大家还有什么其他想法,欢迎在评论区交流!
边栏推荐
- Using graylog alarm function to realize the regular work reminder of nail group robots
- Learnopongl notes (I)
- 數據訪問 - EntityFramework集成
- PHP 严格模式
- Cs231n notes (bottom) - applicable to 0 Foundation
- How was the middle table destroyed?
- Sentinel flow guard
- 用键盘输入一条命令
- If you can't afford a real cat, you can use code to suck cats -unity particles to draw cats
- 国产芯片产业链两条路齐头并进,ASML真慌了而大举加大合作力度
猜你喜欢

Domestic API management artifact used by the company

Solution of vant tabbar blocking content

Enter a command with the keyboard

"21 days proficient in typescript-3" - install and build a typescript development environment md

HiEngine:可媲美本地的云原生内存数据库引擎

Reduce the cost by 40%! Container practice of redis multi tenant cluster

清晰还原31年前现场,火山引擎超清修复Beyond经典演唱会

Basic introduction to the control of the row component displaying its children in the horizontal array (tutorial includes source code)

极坐标扇图使用场景与功能详解

Games101 notes (III)
随机推荐
PHP strict mode
深潜Kotlin协程(二十一):Flow 生命周期函数
BS-XX-042 基于SSM实现人事管理系统
PSPNet | 语义分割及场景分析
采用药丸屏的iPhone14或引发中国消费者的热烈抢购
How does win11 change icons for applications? Win11 method of changing icons for applications
Cheer yourself up
美国芯片傲不起来了,中国芯片成功在新兴领域夺得第一名
Oneforall installation and use
自己要有自己的坚持
PHP人才招聘系统开发 源代码 招聘网站源码二次开发
StarkWare:欲构建ZK“宇宙”
给自己打打气
[brush title] goose factory shirt problem
Bs-xx-042 implementation of personnel management system based on SSM
Google Earth Engine(GEE)——Kernel核函数简单介绍以及灰度共生矩阵
How to use FRP intranet penetration +teamviewer to quickly connect to the intranet host at home when mobile office
Clear restore the scene 31 years ago, volcanic engine ultra clear repair beyond classic concert
国产芯片产业链两条路齐头并进,ASML真慌了而大举加大合作力度
[echart] resize lodash to realize chart adaptation when window is zoomed