html-什么是重排和重绘?如何减少影响的范围
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
当 DOM 元素的属性发生变化 (如 color) 时, 浏览器会通知 render 重新描绘相应的元素, 此过程称为 重绘repaint。
如果变化涉及元素尺寸重新计算 , 浏览器则抛弃原有属性, 重新计算并把结果传递给 render 以重新描绘页面元素, 此过程称为 重排reflow。
重绘不会带来重新布局,并不一定伴随重排
重排一定会引起浏览器的重绘
常见的触发重排的操作:
1.DOM树的结构变化,如节点的增减、移动
2.DOM元素的几何属性变化,如外边距、内边距、边框厚度、宽高、等几何属性)
3.窗口属性的获取和尺寸改变,如offsetTop、offsetLeft、 offsetWidth、offsetHeight、scrollTop、scrollLeft、scrollWidth、scrollHeight、 clientTop、clientLeft、clientWidth、clientHeight、getComputedStyle() (currentStyle in IE)
减少影响范围的具体方法:
1.分离读写操作,如
2. 将多次改变样式属性的操作合并成一次操作
3.将需要多次重排的元素,position属性设为absolute或fixed,这样此元素就脱离了文档流,它的变化不会影响到其他元素。例如有动画效果的元素就最好设置为绝对定位。
4. 由于display属性为none的元素不在渲染树中,对隐藏的元素操作不会引发其他元素的重排。如果要对一个元素进行复杂的操作时,可以先隐藏它,操作完成后再显示。这样只在隐藏和显示时触发2次重排。
5.在内存中多次操作节点,完成后再添加到文档中去。例如要异步获取表格数据,渲染到页面。可以先取得数据后在内存中构建整个表格的html片段,再一次性添加到文档中去,而不是循环添加每一行。
6. 在需要经常取那些引起浏览器重排的属性值时,要缓存到变量,如窗口的offsetTop、offsetLeft事先缓存
html-什么是重排和重绘?如何减少影响的范围相关推荐
- java都界面相对布局_浏览器的重排和重绘
浏览器的高层结构 1.用户界面 - 包括地址栏.前进/后退按钮.书签菜单等. 2.浏览器引擎 - 在用户界面和呈现引擎之间传送指令. 3.渲染引擎 - 负责显示请求的内容. 4.网络 - 用于网络调用 ...
- 160826、浏览器渲染页面过程描述,DOM编程技巧以及重排和重绘
一.浏览器渲染页过程描述 1.浏览器解析html源码,然后创建一个DOM树. 在DOM树中,每一个HTML标签都有一个对应的节点(元素节点),并且每一个文本也都有一个对应的节点(文本节点). DO ...
- 前端性能优化之重排和重绘
前言,最近利用碎片时间拜读了一下尼古拉斯的另一巨作<高性能JavaScript>,今天写的文章从"老生常谈"的页面重绘和重排入手,去探究这两个概念在页面性能提升上的作用 ...
- 你真的了解重排和重绘吗?
做过前端开发的小伙伴就算不是非常理解重排与重绘,但是肯定都听过这两个词.那为什么这两个东西这么重要?因为他与我们的页面性能息息相关,今天,我们就来好好研究一下这两个东西. 浏览器的渲染流程 在讲解重排 ...
- 浏览器渲染机制、重排、重绘
前言 浏览器的渲染机制.重排.重绘 一.页面生成 1. HTML会被HTMl解析器解析成DOM树 2. CSS会被CSS解析器解析成CSSOM树 3. 结合DOM树和CSSOM树生成一颗渲染树 4.将 ...
- 简单易懂之什么是重排和重绘?
文章目录 目录 一.浏览器页面是怎么生成的? 二.什么是重排和重绘? 1.什么时候发生重绘? 2.如何优化重排效率? 一.浏览器页面是怎么生成的? 首先让我们来先了解一下浏览器页面生成的过程 文字解析 ...
- 什么是重排和重绘?何时会触发?
重排 当dom的变化影响了元素的几何信息(位置),浏览器需要计算元素的几何属性,将其安放在界面中的正确位置,这个过程叫做重排,表现为重新生成布局,重新排列元素. 重绘 当一个元素(颜色.字体颜色)的外 ...
- 重排(reflow) 重绘(repaint)
在页面的生命周期中:至少会发生一次渲染,在用户访问的过程中,还会不断的触发重排(reflow)重绘(repaint) 重绘和重排都会影响性能,尤其是重排,会使我们付出高昂的性能代价. 页面生成的过程( ...
- 浏览器的重排与重绘是什么意思?
准备 为了理解重排与重绘,我们首先需要了解一点浏览器渲染的基础知识 ~ 网页生成分为五步: 1. HTML 被 HTML 解析器解析成 DOM 树 2. CSS 被 CSS 解析器解析成 CSSOM ...
- 【CSS笔记】CSS修饰表格、表单、CSS重排和重绘
目录 一.CSS修饰表格 1.1.CSS表格属性 (1)边框 (2)宽度和高度 (3)对齐方式 二.CSS修饰表单 2.1.CSS表单 三.CSS重排和重绘 3.1.HTML渲染过程 3.2.重排和重 ...
最新文章
- LeetCode实战:求众数
- 用户表单事件(focus事件)
- Spring Cloud-Honghu Cloud分布式微服务云系统(一)
- 北京中医药大学等8所高校被世界医学院校名录除名,毕业生无法获取英美从医资格...
- python用于什么-python主要应用在哪些领域?
- shell-extension
- 到2026年,非洲数据中心市场规模将达到50亿美元
- 计算两个日期相差的天数
- WatchOS系统开发大全(4)-WatchApp生命周期
- 【linux】查看内存使用情况
- H3C认证无线互联网络专家
- python的panda是什么库_Python的Pandas库简述
- 工信部:鼓励采用低速直驱和高速直驱式永磁电机
- 支持magento扩展性的几个特性
- cc2530按键流水灯c语言程序,CC2530流水灯程序
- 易语言c编译,易语言命令行编译工具免费版下载_易语言命令行编译工具最新版下载_3DM软件...
- Java代码编程格式规范
- Word如何转换成PDF格式
- 高等数学笔记:三重积分下的坐标系变换
- java对excel加密_java poi对Excel文件加密