目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

web前端全系列 教程

1839个小节阅读:2243.7k

收藏
全部开发者教程

鸿蒙应用开发

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(1.6k)
赞(0)

回流和重绘

image-20211109101943699

渲染树转换为网页布局,称为“布局流”(flow);布局显示到页面的这个过程,称为“绘制”(paint)。它们都具有阻塞效应,并且会耗费很多时间和计算资源。

页面生成以后,脚本操作和样式表操作,都会触发“回流”(reflow)和“重绘”(repaint)。

什么是回流和重绘

回流:当节点树中的一部分因为元素的规模尺寸,布局,隐藏等改变而需要重新构建

重绘:当节点数中的一些元素需要更新属性,而这些属性只是影响元素的外观,风格,而不会影响布局的

温馨提示

回流和重绘并不一定一起发生,回流必然导致重绘,重绘不一定需要回流。比如改变元素颜色,只会导致重绘,而不会导致回流;改变元素的布局,则会导致重绘和回流

什么时候会造成回流和重绘

回流

  1. 页面初始加载
  2. 改变字体,元素尺寸(width,height,border,position),改变元素内容
  3. 添加或删除元素,如果元素本身被display:none会回流,visibility:hidden则会发生重绘
  4. 定位为fixed的元素,滚动条拖动时会回流
  5. 调整窗口大小

重绘

colorborder-stylevisibilitybackground
text-decorationbackgtound-imagebackground-repeatbackground-position
outline-coloroutlineoutline-styleborder-radius
outline-widthbox-shadowbackground-size 

优化技巧

  1. 读取 DOM 或者写入 DOM,尽量写在一起,不要混杂。不要读取一个 DOM 节点,然后立刻写入,接着再读取一个 DOM 节点
  2. 缓存 DOM 信息
  3. 不要一项一项地改变样式,而是使用 CSS class 一次性改变样式
  4. 使用documentFragment操作 DOM
  5. 动画使用absolute定位或fixed定位,这样可以减少对其他元素的影响
  6. 只在必要时才显示隐藏元素
  7. 使用虚拟DOM(virtual DOM)库

实时效果反馈

1. 以下那个操作会造成回流:

A 改变元素背景颜色

B 添加动态元素

C 增加元素圆角效果

D 改变元素字体颜色

答案

1=>B

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2