前端进阶(二)重绘和回流

本文深入探讨了前端开发中的重绘和回流现象,通过一个实际项目中的bug例子,揭示了回流可能导致的问题。文章详细阐述了回流(布局变化)和重绘(样式变化)的基本概念,列举了触发回流的各种条件,并提供了减少回流和重绘开销的优化策略,包括避免频繁DOM操作、利用CSS控制样式、避免访问特定样式属性等。
摘要由CSDN通过智能技术生成

今天结合项目说下重绘和回流。

公司代码有个bug是这样的:页面整体分为三部分,页面上面横向并排两个容器,页面下方是个表格。页面上方两个容器中图形都是用Highcharts画的,但是页面重绘导致其中一个图形在第二次回流时超出了容器边界。这个问题我折腾了大半天都没找到根源。最后才发现是下方表格由于有多余的边框,有段js逻辑代码是这样写的:

function ClearBorderRight(source) {
    $("#" + source + "_unlockheadersbody").find("tr").each(function () {
        $(":last-child").css("border-right", "0");
    });
}

这段代码直接导致了页面二次回流,使得DOM发生变化,图形冲破容器。

下面我将详细分析造成重绘和回流的原因,首先我们先认识什么叫重绘和回流。

一、回流和重绘基本概念

这个系列的第一篇文章详细介绍了浏览器相关的原理,建议大家先看看。前端进阶(一)浏览器运行原理

1、回流

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fullstack_lth

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值