什么是重绘和回流

DOM变化影响到了元素的几何属性(宽高),浏览器会重新计算元素的几何属性,其它元素的几何属性和位置也会受到影响,浏览器需要重新构造渲染树,这个过程称为重排(回流)。浏览器将受到影响的部分重新绘制到屏幕上的过程称为重绘。
(另一种:重绘是指元素外观改变所触发的浏览器行为,如visibility,背景样式,outline等。浏览器会根据元素的新属性重新绘制,使元素呈现新的外观。
重排是指:更明显的改变,需要浏览器重新计算渲染树,每个页面至少有一次回流,即使页面加载的时候。)

引起重排的原因

  • 增加或移除样式表
  • 添加或删除可见的DOM元素
  • 改变元素的尺寸、内容、位置、字体
  • 浏览器页面初始化
  • 浏览器窗口尺寸改变
  • 设置style属性值
    重排一定引起重绘,重绘不一定重排

减少重排和重绘的方法

  • 不在布局信息改变时做dom查询
  • 使用cssText或className一次性改变属性
  • 对于多次重排的元素,使用绝对定位脱离文档流,如动画。

document. write重绘整个页面
innerHTML重绘部分页面

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。