简单易懂之什么是重排和重绘?

article/2025/4/30 23:08:57

文章目录

目录

一、浏览器页面是怎么生成的?

二、什么是重排和重绘?

1.什么时候发生重绘?

2.如何优化重排效率?


一、浏览器页面是怎么生成的?

首先让我们来先了解一下浏览器页面生成的过程

 文字解析:

1)HTML解析器将HTML解析成DOM树

2)CSS解析器将CSS解析成CSSOM树

3)  结合两棵树生成渲染树(Render Tree),该过程称为Attachment

4)浏览器会根据补救方式,在屏幕“画”出渲染器的所有节点

5)然后将布局绘制在屏幕上,显示出整个页面

二、什么是重排和重绘?

我们要知道,当浏览器下载完页面所需的元素之后,会生成两棵树:DOM树和渲染树。

DOM树主要是用来表示页面的DOM结构,而渲染树主要是用来表示页面上如何进行渲染的

当DOM的变化影响到了元素的几何属性,会使浏览器重新计算元素的几何属性,同样,其他几何元素的几何属性也会因此受到影响。浏览器会使渲染树中受到影响的部分失效,并重新构建渲染器,这个过程称之为重排。完成重排之后,浏览器会重新绘制受影响的元素,这个过程被称之为重绘。

1.什么时候发生重绘?

1)添加或删除可见的DOM元素

2)元素的位置发生变化

3)元素的尺寸发生变化(包括:内、外边距,边框厚度、高度、宽度等属性发生变化)

4)内容发生变化(内容引起高度变化或者图片被另一个不同尺寸的图片替代)

5)页面渲染器进行初始化

6)浏览器窗口尺寸发生改变

2.如何优化重排效率?

1)减少重排范围

尽量以局部布局的形式组织HTML结构,尽可能小的影响重排的范围(BFC)

不使用table布局,在table中可能很小的一个改动会造成整个table的重新布局

2)减少重排次数

样式集中改变

分离度写操作

将要修改的元素离线操作


http://chatgpt.dhexx.cn/article/JVESVjbq.shtml

相关文章

重排(回流)和重绘

什么是重排和重绘 浏览器下载完页面所有的资源后,就要开始构建DOM树,与此同时还会构建渲染树(Render Tree)。(其实在构建渲染树之前,和DOM树同期会构建Style Tree。DOM树与Style Tree合并为渲染树) 浏览器下载完成所有…

什么是重排和重绘

简答 1.重排(重新排列)> 指元素的位置发生改变的时候浏览器会进行重排 2.重绘(重新绘制)>指元素的基本样式发生改变是发生重绘,比如颜色等。。。 细答 前提概要(浏览器使用两个引擎进行工作一是渲…

Docker之发布自己的镜像

首先应当是先登入 其次是将镜像重新打包 在此处使用命令 docker commit fb6af4e48c14 zlx/centos7_vim:1.0 将一个容器生成一个新的镜像 然后把这个镜像改成dockerhub的仓库名,push一下就行了,dockerhub毕竟是国外的网站,换成阿里云就好了

Matlab调用excel数据绘制折线图

如题,matlab之前没接触过,但是电脑上一直有安装,有些老师需要做几张图放论文里,所以尝试了一下(excel其实效果也行,但matlab感觉更专业) x2:2:778;%x轴上的数据,第一个值代表数据开…

COGS 2075. [ZLXOI2015][异次元圣战III]ZLX的陨落

★★☆ 输入文件:ThefallingofZLX.in 输出文件:ThefallingofZLX.out 简单对比时间限制:1 s 内存限制:256 MB 【题目描述】 正当革命如火如荼,情侣教会日薄西山之时,SOX和FFF的分歧却越来越大&#…

Codechef GRAPHCNT 支配树学习及tarjan算法求解

[Codechef GRAPHCNT]新年的有向图 【题目描述】 zlx同学在学习数论时,被虐了一脸,丧心病狂的他决定去报复社会。 zlx在公园里埋下N颗地雷,用来炸飞在春节期间秀恩爱的情侣。这N颗地雷由M条有向边连接成为一个有向图,zlx则在1号地雷处引爆1号地雷可以到达的地雷。现在,为了…

大数据体系建设经验分享

分享嘉宾:吴荣彬 分贝通 大数据部负责人 编辑整理:zlx 出品平台:DataFunTalk 导读:本文将介绍分贝通在大数据领域的一些建设经验。分贝通在ToB领域是一个年轻的公司,成立六年多,大数据体系刚刚建立一年多&a…

将二维数组转为稀疏数组进行压缩,提高效率

** 稀疏数组 ** ##基本介绍: 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 1) 记录数组一共有几行几列,有多少个不同的值 2) 把具有不同值的元素的行列…

A数字三角 怨种

问题描述 有一天,无聊的 zlx 从 1 开始数数,同时在纸上写下每个数的个位数字。因为她非常热爱直角三角形,所以在纸上写下的数字按照直角三角形排列。现在告 诉你写她了 N 行数字,要求你打出这些数字。 输入格式 一行一个数 N&a…

聊聊Spring的IOC,AOP、DI、MVC

1 聊聊Ioc,Di,Mvc,Aop 不想看下面内容的,直接上代码连接,以下代码都有注释 传送门 1.1 看启动项 我们先来看看启动项 package com.tian;import com.tian.springframework.annotation.SpringBootApplication; import com.tian.springframework.config…

ZYNQ DDS产生载波FFT变换

环境:vivado2017.4,快速傅里叶变换V9.0 IP核 一,介绍:Xilinx FFT IP核是一种计算DFT的有效方式。 特点:前向变换(FFT)和反向变换(IFFT)在复数空间,并且可…

并发队列中迭代器弱一致性原理探究

一、前言 并发队列里面的Iterators是弱一致性的,next返回的是队列某一个时间点或者创建迭代器时候的状态的反映。当创建迭代器后,其他线程删除了该元素时候并不会抛出java.util.ConcurrentModificationException异常,能够保持创建迭代器后的元…

浅谈同构类问题的骗分算法

ZLX算法-----同构类问题的有力骗分算法前言:ZLX算法是一种解决判定性同构问题的蒙特卡罗式骗分算法:总能在确定的运行时间内出解,但是得到的解不能保证正确。尽管由于具有拓扑序,树同构和仙人掌同构存在多项式算法,但是…

win10下修改C盘用户文件夹名

之前安装一个程序出错,上网百度后是用户文件夹名为中文,也在网上找了好多方法,有同步的,有修改注册表的,最后我找到一个比较简单而且数据保留完整的方法。这种方法也会自动修改用户的环境变量,不过修改完后…

【Windows】Win10-更改c盘下的用户文件夹名

转载ooooohugh的文章,原文地址:https://blog.csdn.net/qq_33530388/article/details/71739845 当初 不小心用自己名字 作为计算机用户名,后来 许多软件因为 不支持 路径中有中文,导致吃了不少的亏,心疼。。。。 下面说…

Windows10更改c盘中用户名对应的文件名字

目录 前言一、修改步骤1.开启管理员账号并登陆2.重启电脑3.登录管理员账号4.重命名用户名对应的文件夹5.修改Path6.重启电脑并切换回你的账号7.修改环境变量8.重启电脑 二、修改导致的问题1.桌面大部分软件快捷方式失效2.部分软件无故消失 三、提醒Last 前言 强烈建议看完此文…

win10 修改c盘用户文件夹名称

c盘用户文件夹如果是中文名 可能会导致需要没必要的麻烦,记录一下修改方法 第一步:如果你电脑不是本地用户administrator,注销当前用户使用administrator登录 按winx 点击关机或注销 在点击注销 注销后如果没有Administrator登录方式&#…

有关windows10修改C盘用户中文名文件夹相关问题的具体解决方案

win10修改用户文件夹名 今天在下载安卓sdk开发工具的时候,安装出现了一个问题如图,左下角提示我们的sdk路径含有非ascll的字符,无法继续安装,其实不只是中文字符,英文字符中间若有空格也不能继续安装。 对于互联网学…

更改计算机用户文件夹,win10系统怎么自定义C盘用户文件夹名称

许多用户在安装win10系统之后,想要让电脑显得更加个性化,就想要给C盘中的用户文件夹名称进行自定义修改,那么win10系统怎么自定义C盘用户文件夹名称呢?接下来给大家分享一下具体的操作步骤。 1、在键盘上按下Windows键X 组合键&am…

Windows 11 的C盘User(用户)文件夹下的用户文件夹名称的修改

背景介绍:由于系统重装导致Windows 11的系统用户名与C盘User(用户)文件夹下的用户名文件夹(公用文件夹旁边的文件夹)出现名称不一致,事例中系统用户名命名为“寂萧”,User(用户&…