客户端渲染页面、DOM重绘和回流、避免DOM的回流

简介: 客户端渲染页面、DOM重绘和回流、避免DOM的回流


一小池勺❤️❤️❤️ ❤️❤️❤️❤️胸有惊雷而面如平湖者,可拜上将军也。


客户端渲染页面

  • 浏览器渲染页面的步骤
  • 解析HTML,生成DOM树,解析CSS,生成CSSOM树
  • 将DOM树和CSSOM树结合,生成渲染树(Render Tree)
  • Layout(回流):根据生成的染树,计算它们在设备视口(viewport)内的确切位置和大小,这个阶段是回流
  • Painting(重绘): 根据潼染树以及回流得到的几何信息,得到节点的绝对像素
  • Display:将像素发送给GPU,展示在页面上
  • DOM重绘和回流
  • 重绘:元素样式的改变(但宽高、大小、位置等不变)
  • 回流:元素的大小或者位置发生了变化(当页面布局和几何信息发生变化的时候),触发了重新布局,导致渲染树重新计算布局和渲染

**注意:**回流一定会触发重绘,而重绘不一定会回流

  • 前端性能优化之 : 避免DOM的回流
  • 放弃传统操作dom的时代,基于vue/react开始数据影响视图模式
  • 分离读写操作(现代的浏览器都有渲染队列的机制)
  • 样式集中改变
  • 缓存布局信息
  • 元素批量修改
  • 动画效果应用到position厘性为absolute或fixed的元素上(脱离文档流)
  • CSS3硬件加速(GPU加速)
  • 牺牲平滑度换取速度
  • 避免table布局和使用css的javascript表达式

谢谢款待

目录
相关文章
|
2天前
|
JavaScript 数据可视化 容器
easyv平台_过滤器强制修改dom(暴力自定义组件渲染样式)
easyv平台_过滤器强制修改dom(暴力自定义组件渲染样式)
5 0
|
2月前
|
存储 缓存 JavaScript
|
4月前
|
JavaScript
【讲人话】Angular如何通过@ViewChildren获取实时渲染的动态DOM节点元素(@ViewChild只能获取静态的固定DOM节点)
【讲人话】Angular如何通过@ViewChildren获取实时渲染的动态DOM节点元素(@ViewChild只能获取静态的固定DOM节点)
|
8月前
|
人工智能 自然语言处理 JavaScript
$nextTick与原生js先渲染dom再执行函数的方式
$nextTick与原生js先渲染dom再执行函数的方式
110 0
|
8月前
|
JavaScript
获取dom节点与页面顶部的高度 +平滑的自动上拉到页面顶部
获取dom节点与页面顶部的高度 +平滑的自动上拉到页面顶部
|
8月前
|
JavaScript PHP
原生PHP 图片上传并渲染指定dom中
原生PHP 图片上传并渲染指定dom中
|
9月前
|
JavaScript
HTML使用DOM属性跳转页面
HTML使用DOM属性跳转页面
131 0
|
9月前
|
移动开发 前端开发 JavaScript
前端工程化的前端性能的性能优化方案的渲染层面优化之DOM优化
DOM 优化是一种非常重要的前端性能优化方案,因为它可以在不同的环境中提高网页的响应速度和可接受性。
71 0
|
10月前
|
JavaScript 数据可视化
datav和echarts一起使用时,在datav的组件里获取不到dom元素,导致无法渲染echarts
记录一个小问题,datav和echarts一起使用时,在datav的组件里获取不到dom元素
212 1
|
10月前
|
JavaScript 前端开发
前端学习笔记202304学习笔记第十二天-vue3.0-渲染es-footer的dom结构
前端学习笔记202304学习笔记第十二天-vue3.0-渲染es-footer的dom结构
47 0