首页 > 其他分享 >浏览器重绘和回流

浏览器重绘和回流

时间:2024-06-03 15:54:56浏览次数:16  
标签:浏览器 元素 修改 https 回流 图层 重绘

概述

  • 重绘指的是元素重新绘制,一般性能消耗很小,不用在意,一般修改颜色或者虚拟隐藏都是重绘
  • 回流指的是修改元素宽高或者位置或者获取元素宽高位置等都是回流,性能消耗较大。
重绘(repaint):元素样式改变不影响布局

回流(reflow):也叫重排,当元素的尺寸、结构变化或触发某些属性时,浏览器会重新渲染页面

相关文章

https://segmentfault.com/a/1190000041913824
https://juejin.cn/post/6844903569087266823

css3 动画是回流吗?

不会,因为 GPU 进程会为其开启一个新的复合图层,不会影响默认复合图层(就是普通文档流),所以并不会影响周边的 DOM 结构而属性的改变也会交给 GPU 处理,不会进行重排。

也就是使用一个新图层来实现css3动画,不会影响原来的dom结构,所以不会导致重排回流等。

如何避免回流

CSS
避免使用table布局
将动画效果应用到position属性为absolute或fixed的元素上(因为不占用空间)
JavaScript
避免频繁操作样式,可汇总后 一次修改
尽量使用class进行样式修改
减少dom的增删次数,可使用字符串或者 documentFragment 一次性插入
极限优化时,修改样式可将其display: none后修改
避免多次触发上面提到的那些会触发回流的方法,可以的话尽量用变量存住

作者:charlie
链接:https://juejin.cn/post/7139752838434914334
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

image

标签:浏览器,元素,修改,https,回流,图层,重绘
From: https://www.cnblogs.com/jocongmin/p/18229054

相关文章

  • 今天分享一篇Python启动浏览器的文章
    1.首先是浏览器选择,因为我之前自己电脑测试,安装了Firefox浏览器,版本号:45.0.2。但是这个版本号的浏览器找不到对应的驱动,但是本人又不想卸载这个浏览器,所以转而使用谷歌浏览器进行自动化测试了。Firefox驱动下载地址:https://github.com/mozilla/geckodriver/releases,如果有需要的......
  • 重排和重绘的区别,什么情况下会触发这两种情况
    重排(Reflow)和重绘(Repaint)是Web前端开发中关于浏览器渲染机制的两个核心概念。它们之间的主要区别以及触发条件如下:重排(Reflow)定义:重排也称为布局(Layout),当元素的几何属性(如宽、高、位置)或内容、可见性发生变化时,浏览器需要重新计算元素及其子元素的布局信息,包括它们的位置和......
  • 禁止Chrome浏览器自动更新
    1. 禁用自动更新计划任务 按下Win+R,打开运行对话框,输入taskschd.msc,打开"任务计划程序",展开左侧功能树到"任务计划程序库",分两次选择右侧两个GoogleUpdate的任务计划,右键菜单选择"禁用"。 2.禁用自动更新服务 按下Win+R,打开运行对话框,输入msconfig,打开"系统配置",取消两......
  • 谷歌浏览器114之前、124、125、126版本驱动下载
    114之前版本下载链接在这里   https://chromedriver.chromium.org/downloads ​​​​​​124以后版本下载链接在此   https://googlechromelabs.github.io/chrome-for-testing/#canary只有后面status是绿色对勾的才可以下载,驱动大版本一致就可以使用,不需版本号一模一......
  • 浏览器下载的文件为什么不允许我指定下载位置
    文章目录问题分析问题我们在做B端开发时,通常会遇到用户问道:我下载的文件为什么不能下载到指定位置让我手动去选择呢分析我们开发是基于浏览器做的开发,因此要遵循浏览器的限制条件浏览器限制用户自定义下载地址的主要原因是出于安全考虑。如果浏览器允许用户自定......
  • 防止浏览器缓存了静态的配置等文件(例如外部的config.js 等文件)
    防止浏览器缓存了静态的配置文件前言1、在script引入的时候添加随机数1.1、引入js文件1.2、引入css文件2、通过html文件的<meta>设置防止缓存3、使用HTTP响应头:前言在实际开发中浏览器的缓存问题一直是一个很让人头疼的问题,尤其是我们打包时候防止的静态配置文件con......
  • 监听浏览器更新URL参数,实现伪SPA单页面应用
    在老的jqury项目中通常实现SPA一般都采用hash值变化来进行监听,但是有的项目中我们也想采用改变URL参数来进行监听,一般我们使用window.history.pushState方法来改变url参数;为了在使用window.history.pushState或window.history.replaceState后能够检测到浏览器的后退按钮操作,......
  • noVNC用浏览器网页远程控制 PC 电脑桌面
    最近想要在微软XBOX游戏机远程访问电脑桌面,发现可以用noVNC这款软件来实现浏览器远程访问桌面。只要在PC电脑安装上noVNC服务,XBOX通过Edge浏览器就可以远程访问了。安装教程1.安装UltraVNC软件(开源免费桌面远程工具)3.安装命令 :https://www.zxki.cn/9684.htm......
  • 浏览器插件推荐
    一、这9款Edge浏览器必备灵魂插件,少装一个都不行!9款Edge浏览器必备灵魂插件,少装一个都不行!FlashCopilot学术资源全搜索BewlyBewly在线音乐盒篡改猴UblockOriginAIX智能下载器GlobalSpeedDarkReader  二、别眨眼,5个神级拓展插件颠覆你的Edge浏览器......
  • Windows中,Jenkins上部署ui自动化自启动浏览器(不使用无头模式)
    1、window上安装jenkins,我是借助以下链接进行安装的:Windows系统下Jenkins安装、配置和使用_jenkinswindows-CSDN博客2、jenkins安装中与github连接:jenkins+github集成自动化测试环境搭建(2)-jenkins+github集成_jenkins自动化测试集成github-CSDN博客3、解决jenkins运行ui......