回流与重绘

回流(reflow)与重绘(repaint)是Web渲染的重要概念。回流发生在元素尺寸、布局改变时,浏览器需要重新构建渲染树并绘制受影响部分。而重绘仅在样式变化不影响布局时发生。常见的触发回流的操作包括添加删除元素、更改尺寸、显示隐藏等。回流必然导致重绘,但重绘不一定引发回流。优化Web性能的关键在于减少回流和重绘的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

回流(reflow)与重绘(repaint)

回流(reflow):当render tree中的一部分(或全部),因为元素的规模尺寸、布局、隐藏等改变
而需要重新构建

  1. 每个页面至少回流一次,即页面首次加载;
  2. 回流时,浏览器会使渲染树中收到影响的部分失效,并重新构造这部分渲染树
  3. 回流完成后,浏览器会重新绘制手影响的部分,是重绘过程

重绘(repeaint)当页面元素样式改变不影响元素在文档流中的位置时,浏览器只会将新的样式赋予元素并进行重新绘制操作
回流必将引起重绘,重绘不一定会引起回流

引发回流因素:
1、添加或删除可见元素,
2、元素位置改变
3、元素尺寸改变:边距、填充、边框、宽度和高度
4、页面渲染初始化
5、浏览器窗口尺寸改变:resize 事件发生时
6、获取元素的偏移量属性,例如:scrollTop、scrollLeft、scrollWidth、offsetTop、offsetLeft、offsetWidth、offsetHeight,浏览器为了保证值的正确性,会回流取最新的值
引发回流属性:
width
Height
Padding
Margin
Display
Border-width
Border
width
Height
Padding
Margin
Display
Border-width
Border
width
Height
Padding
Margin
Display
Border-width
Border

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值