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

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

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。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端性能优化是提高网页加载速度和用户体验的重要手段之一。而减少使用table布局是优化前端性能的一种常见方法。 1. 减少DOM元素数量:table布局包含大量的tr、td等标签,每个标签都是一个DOM元素,而DOM的操作开销较大。减少table布局的使用,可以减少DOM元素的数量,从而提升性能。 2. 减少嵌套层级:使用table布局时,常常会嵌套多个table标签,增加了嵌套的层级。层级过深会导致浏览器渲染变慢,增加页面加载时间。使用其他布局方式,如CSS布局,可以将嵌套层级减少到最低,提高性能。 3. 减少重绘与回流:table布局的改变会引发页面的重绘与回流,这是浏览器重新渲染页面的过程,会消耗大量的CPU资源。使用其他布局方式,如flex布局,可以减少页面的重绘与回流,提高性能。 4. 使用CSS代替表格:在某些情况下,使用table布局可能是为了实现某种特定的效果或布局。但是,很多情况下,可以使用CSS布局来替代table布局,例如使用flex布局、grid布局等。这样可以更加灵活地控制布局,并且能够更好地适应不同设备和屏幕尺寸。 综上所述,减少table布局是一种常见的前端性能优化手段,可以通过减少DOM元素数量、减少嵌套层级、减少重绘与回流、使用CSS代替表格等方式来实现。这样可以提高页面加载速度,提升用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值