浏览器渲染流程

渲染流水线

生成dom树

根据html生成dom树

生成cssom树

解析css生成一颗cssom树

复制代码
document.styleSheets

构建布局树-layout

根据dom树与cssom树构建一棵layout布局树,会移除不可见部分, 如display:none的dom, 但visible: hidden这种会保留

同时会计算可见部分的几何位置

划分图层-layer

页面的显示其实是类似于photoshop多图层模式

不同的元素或显示情况对应不同的图层, 根据图层最后合成一张图片

绘制-paint

为每个图层生成包含绘制信息的绘制列表, 将绘制列表提交给渲染进程的合成线程用于绘制

重排、重绘、合成

重排

修改dom的几何属性时,会触发完整的渲染流水线,此情况成为重排

重绘

修改的dom属性不涉及几何属性,会省略layout、layer,此过程称为重绘

合成

修改的属性不涉及上述重排重绘的属性时,省略layout、layer、paint,仅执行合成线程的绘制工作

这种情况称为合成

如transform属性

相关推荐
\xin2 小时前
pikachu自编exp,xss反射性get,post,存储型xss,dom,dom-x
前端·javascript·xss
宁雨桥13 小时前
深入理解 async/await的原理
前端·javascript·es8
心连欣14 小时前
轮播图实战:用Web API玩转元素属性操作
前端·javascript·api
剑神一笑14 小时前
从 JSON.parse 到树形视图:实现一个在线 JSON 格式化工具
前端·javascript·json
淸湫14 小时前
JavaScript常用正则表达式大全
前端·javascript
最炫的美少女战士15 小时前
claude code 安装报错claude native binary not installed.
javascript
用户23678298016816 小时前
Canvas:实现一个高颜值二维码生成器
javascript
剑神一笑16 小时前
从字符串到时间线:实现一个 Cron 表达式解析器
javascript·typescript·reactjs
❆VE❆17 小时前
基于 contenteditable 实现变量插入富文本编辑器
前端·javascript·vue.js
烤麻辣烫17 小时前
json与fastjson
前端·javascript·学习·json