目录
回流
重绘
什么时候会触发回流或重绘?
如何减少回流、重绘?
一、 CSS中避免回流、重绘
二、 JS操作避免回流、重绘
总结:
首页 web前端 前端问答 javascript中什么是回流

javascript中什么是回流

Nov 19, 2021 pm 05:54 PM
javascript 回流

在javascript中,回流也叫做重排,是指当渲染树中的一部分或全部因为元素的规模尺寸、布局、隐藏等改变时,浏览器重新渲染部分DOM或全部DOM的过程;简单来说,就是重新排版整个页面。

javascript中什么是回流

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

简单先了解一下浏览器的渲染过程(图片来自于网络)

1.png

浏览器生成渲染树的过程(图片来自于网络)

2.png

回流

当渲染树中的一部分或全部因为元素的规模尺寸、布局、隐藏等改变时,浏览器重新渲染部分DOM或全部DOM的过程。

回流也被称为重排,其实从字面上来看,重排更容易让人形象易懂(即重新排版整个页面)。

重绘

当页面元素样式改变不影响元素在文档流中的位置时(如background-color,border-color,visibility),浏览器只会将新样式赋予元素并进行重新绘制操作。

什么时候会触发回流或重绘?

有大量的用户行为以及潜在的DHTML改变会触发回流。例如,改变浏览器窗口的大小,使用一些JavaScript方法,包括计算样式,对DOM进行元素的添加或删除,或是改变元素的class等。

添加或者删除可见的DOM元素;
元素位置改变;
元素尺寸改变——边距、填充、边框、宽度和高度;
内容变化,比如用户在input框中输入文字,文本或者图片大小改变而引起的计算值宽度和高度改变;
页面渲染初始化;
浏览器窗口尺寸改变,resize事件发生时;
计算offsetWidth和offsetHeight属性;
设置style属性的值;
登录后复制

回流必将引起重绘,而重绘不一定会引起回流。

如何减少回流、重绘?

一、 CSS中避免回流、重绘

1.尽可能在DOM树的最末端改变class
2.避免设置多层内联样式
3.动画效果应用到position属性为absolute或fixed的元素上
4.避免使用table布局
5.使用css3硬件加速,可以让transform、opacity、filters等动画效果不会引起回流重绘

二、 JS操作避免回流、重绘

1.避免使用JS一个样式修改完接着改下一个样式,最好一次性更改CSS样式,或者将样式列表定义为class的名称
2.避免频繁操作DOM,使用文档片段创建一个子树,然后再拷贝到文档中
3.先隐藏元素,进行修改后再显示该元素,因为display:none上的DOM操作不会引发回流和重绘
4.避免循环读取offsetLeft等属性,在循环之前把它们存起来
5.对于复杂动画效果,使用绝对定位让其脱离文档流,否则会引起父元素及后续元素大量的回流

总结:

回流在浏览器中属于一种用户主导的操作,所以知道如何去改进回流时间以及知道各种文档属性(DOM节点深度,css的渲染效率,各种各样的样式改变)对回流时间的影响对于前端开发来讲是很有帮助的。有时即便是回流一个单一的元素,也可能要求它的父元素以及任何跟随它的元素也产生回流。例如需要改变某个元素的背景,这就不涉及该元素的属性,所以只发生重绘。

【推荐学习:javascript高级教程

以上是javascript中什么是回流的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

王牌竞速节后综合征吗:真正的老司机已经开始备战元宵节了 王牌竞速节后综合征吗:真正的老司机已经开始备战元宵节了 Feb 21, 2024 pm 06:04 PM

元宵节马上就要到了,王牌竞速特意为大家准备了元宵猜灯谜活动,猜一猜灯谜,成功答对6道题就可以领取金币奖励,积累到一定数量的灯谜还能够获得丰厚的奖励,具体一起来看看本次的活动详情。王牌竞速节后综合征吗:真正的老司机已经开始备战元宵节了Hey,亲爱的车手都说过完元宵才算给春节画上句号迎灯会、吃汤圆、放烟花…速度节到处都还弥漫着喜庆热闹的过节气氛西理也给大家准备了一些“只有真正的老司机”才能Get的趣味灯谜提前给大伙热热身,一起来猜猜看吧~(PS:车手们可以前往今日公众号推文查看谜底哦!)如何,车手们

《崩坏星穹铁道》米哈伊尔你要去哪儿成就攻略 《崩坏星穹铁道》米哈伊尔你要去哪儿成就攻略 May 09, 2024 pm 09:20 PM

崩坏星穹铁道米哈伊尔你要去哪儿成就攻略。随着崩坏星穹铁道2.2版本的更新,游戏当中也是有非常多的新内容可以去体验的,相信很多小伙伴在完成米哈伊尔你要去哪儿这个成就的时候都遇到了一些困难,不清楚要怎么才能完成,今天就带大家一起来看看详细的过程吧。崩坏星穹铁道米哈伊尔你要去哪儿成就攻略1、当我们继承了同谐开拓者的能力,解决掉四诺康尼的危机后,一切尘埃落定重回流梦礁最上方的传送点,就是下图标记的传送点;2、达到之后笔直往前走,再来看看米哈伊尔,并且调查他前方的阳台;3、调查完成之后就可以获得成就米哈伊

抖音限流量怎么解决?限流量了怎么做才可以回流? 抖音限流量怎么解决?限流量了怎么做才可以回流? Mar 22, 2024 am 09:00 AM

随着抖音的普及,用户普遍面临的问题也在逐渐增加,其中最令人担忧的是抖音限流量的困扰。抖音限流量可能导致用户视频的观看次数、点赞和评论数量等显着减少,进而影响用户的收入和曝光机会。一、抖音限流量怎么解决? 1.提高内容质量抖音的核心竞争力在于内容,只有高质量的内容才能吸引更多用户。因此,提高内容质量是解决抖音限流问题的关键。创作者需要注重内容创新,用独特的视角和创意吸引用户,同时确保内容具有趣味性、教育性和实用性。这样才能不断提升用户体验,增加用户粘性。 2.调整发布时间抖音的流量分配是有时间规律的,

Steam手机令牌丢失怎么找回?Steam申诉指南 Steam手机令牌丢失怎么找回?Steam申诉指南 Mar 14, 2024 pm 10:07 PM

  在使用Steam手机令牌时,发现令牌消失了,这该怎么办?如果没有令牌就无法进行Steam账号的安全验证,我们要怎么找回Steam手机令牌?下面小编就来教教大家Steam手机令牌丢失的申诉方法。  申诉教程如下:  1、进入Steam客服页面steam客服  选择红框中的选项  2、根据自己的情况,选择相应的内容。  账户被盗或者密码丢失一般情况下选择第一个红框中选项即可。  3、选择红框中选项  4、输入自己的账户名称(登录ID,不是个人昵称)、绑定的电子邮箱、或者绑定的手机号均可,之后点击

QQ邮箱如何申请QQ备用邮箱?QQ邮箱申请QQ备用邮箱的方法 QQ邮箱如何申请QQ备用邮箱?QQ邮箱申请QQ备用邮箱的方法 Mar 05, 2024 am 09:30 AM

今日为各位带来的文章是关于QQ邮箱软件的,各位晓得QQ邮箱如何申请QQ备用邮箱吗?以下内容就为大伙带来了QQ邮箱申请QQ备用邮箱的方法,让我们一起来下文看看吧。在登录到QQ邮箱后,可以在邮箱首页上寻找一个带有三角标志的图标。如果无法找到该图标,可以查看图片上的详细标注以帮助定位。找到后点击3角标志,然后点击申请备用邮箱按钮。点击后我们在刚出来的页面右上角点击邮箱账号按钮。点击后我们输入新注册邮箱名,密码,手机号等操作然后点击注册按钮。注册完成后我们返回刚才的邮箱页面然后点击刚才弹出的框内输入账号

Dogelon Mars价格预测2024-2030 Dogelon Mars价格预测2024-2030 Mar 22, 2024 pm 03:33 PM

ELON 在 2023 年达到 0.0000005196 美元的峰值,此后一直在下跌。我们的 Dogelon Mars 价格预测估计到 2024 年底的价格为 $0.0000001409。根据我们 2025 年 Dogelon Mars 的价格预测,ELON 的交易价格为 0.0000004709 美元。

简易JavaScript教程:获取HTTP状态码的方法 简易JavaScript教程:获取HTTP状态码的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教程:如何获取HTTP状态码,需要具体代码示例前言:在Web开发中,经常会涉及到与服务器进行数据交互的场景。在与服务器进行通信时,我们经常需要获取返回的HTTP状态码来判断操作是否成功,根据不同的状态码来进行相应的处理。本篇文章将教你如何使用JavaScript获取HTTP状态码,并提供一些实用的代码示例。使用XMLHttpRequest

万人排队的《塔瑞斯世界》终测,凭什么获得这么多关注? 万人排队的《塔瑞斯世界》终测,凭什么获得这么多关注? Mar 21, 2024 pm 02:50 PM

3月18日,由北京乐动卓越自主研发,腾讯代理发行的双端互动手游《塔瑞斯世界》开启了前夕终测,《塔瑞斯世界》从职业到玩法,都有或多或少的致敬经典,相信喜欢MMO游戏的玩家又可以找到一个新的世界了。回想去年11月份海外测试时,超高的游戏质量吸引了一众海外玩家和许多MMORPG大主播抢注游玩,在3月18日十点国服前夕终测开服后,大批玩家纷纷涌入到《塔瑞斯世界》中,即便有些玩家没有抢到测试资格,但仅仅几分钟,就出现了万人排队的情况,如今国服前夕终测的火爆程度可以说是有过之无不及。(图源来自于网络)自从《

See all articles