页面性能优化,如何减少回流

news/2024/11/26 4:47:40/

在开发时,不可避免的会遇到性能优化的问题,怎么做性能才会更好。
说到页面性能优化,我们就谈谈两个概念重绘和回流。

1、什么是重绘,什么是回流?
重绘: 当渲染树中的一些元素需要更新属性,而这些属性只是影响元素的外观、风格,而不会影响布局的操作,比如 background-color、color、visibility等,我们将这样的操作称为重绘。
常见的引起重绘 的属性和方法:
在这里插入图片描述

回流:当渲染树中的一些元素的几何属性发生变化,例如大小、位置等,而这些属性会影响到布局的操作,这样的操作我们称为回流。

常见引起回流属性和方法:
任何会改变元素几何信息(元素的位置和尺寸大小)的操作,都会触发回流。
(1)添加或者删除可见的 DOM 元素;
(2)元素尺寸改变——边距、填充、边框、宽度和高度
(3)内容变化,比如用户在 input 框中输入文字
(4)浏览器窗口尺寸改变——resize事件发生时
(5)计算 offsetWidth 和 offsetHeight 属性
(6)设置 style 属性的值
(7)当你修改网页的默认字体时。

回流必定会发生重绘,重绘不一定会引发回流。回流所需的成本比重绘高的多,改变父节点里的子节点很可能会导致父节点的一系列回流。

2、减少回流的方式有很多,这里主要介绍以下几种:
(1)使用 transform 替代 top,实现动画性能更好,因为使用transform页面没有回流了。(原因:可以阅读这篇文章:深入理解为什么应该使用transform来替代top)
(2)不要把节点的属性值放在一个循环里当成循环里的变量
(3)不要使用table布局,可能很小的一个小改动会造成整个 table 的重新布局
(4)把DOM离线后修改。如:使用 documentFragment 对象在内存里操作DOM
(5)不要一条一条地修改 DOM 的样式。与其这样,还不如预先定义好css的 class,然后修改 DOM 的 className。


http://www.ppmy.cn/news/287808.html

相关文章

综述|工业金属平面材料表面缺陷自动视觉检测的研究进展

点击上方“计算机视觉工坊”,选择“星标” 干货第一时间送达 摘要: 基于计算机视觉的金属材料表面缺陷检测是冶金工业领域的研究热点。在金属制造行业中,高标准的平面质量要求自动视觉检查系统及其算法的性能必须不断提高。本文基于对钢&…

干货收藏 | 如何优化前端性能?

简介:随着前端的范畴逐渐扩大,深度逐渐下沉,富前端必然带来的一个问题就是性能。特别是在大型复杂项目中,重前端业务可能因为一个小小的数据依赖,导致整个页面卡顿甚至崩溃。本文基于Quick BI(数据可视化分…

【数据处理】格式化数据

格式化数据 一、前言二、示例三、效果图四、拓展——时间戳格式化 一、前言 在日常开发过程中,我们会遇到这样的需求:后端返回的某些数据,是使用数字代码来区别不同的含义(比如1代表是,0代表否)&#xff0c…

基于轻量化重构网络的表面缺陷视觉检测

源自:自动化学报 作者:余文勇 张阳 姚海明 石绘 编辑:OpenCV与AI深度学习 摘 要 基于深度学习的方法在某些工业产品的表面缺陷识别和分类方面表现出优异的性能, 然而大多数工业产品缺陷样本稀缺, 而且特征差异大, 导致这类需要大量缺陷样…

工艺篇:表面粗糙度

表面粗糙度 1.粗糙度符号解释2.表面粗糙度参考举例3. 新旧国标和国外标准表面粗糙度(光洁度)代号及参数对照表 表面粗糙度(surface roughness)是指加工表面具有的较小间距和微小峰谷的不平度 。其两波峰或两波谷之间的距离(波度)很…

【性能优化系列之前端】前端性能优化手段

1、前端性能优化手段 前端性能优化手段从以下几个方面入手:加载优化,执行优化,渲染优化,脚本优化。 1、加载优化: 减少HTTP请求、缓存资源、压缩代码、无阻塞、首屏加载、按需加载、预加载、压缩图像、减少Cookie、避免重定向、异步加载第…

低级格式化软件测试,低级格式化,几款优秀的低级格式化工具对比制作步骤

有时候我们要格式化硬盘,但是往往硬盘里还有重要的资料,有没有办法在格式化的同时让格式化数据不会损失呢?这时候就可以采用低级格式化数据恢复工具了,下面就来看看一下几款格式化数据恢复的软件吧。 如果硬盘和U盘无法格式化,有…

数据格式化与性能优化

package data; import java.text.MessageFormat; public class DataFormat { final static int N 25000; public static void main(String[] args) { operatorFormat(); withPrecompileFormat(); withoutPrecompileFormat(); } /** * author 梅园浩 * date 2015年9月14日 上午…