浏览器的回流与重绘与事件循环

news2024/11/25 10:58:01

浏览器的回流与重绘和事件循环

  • 浏览器回流
  • 浏览器重绘
  • 事件循环

浏览器回流

什么是浏览器回流?
回流是通过JS代码让布局或者几何属性改变,使部分页面或者整个页面更新的过程
在这里插入图片描述

浏览器重绘

剩下的是浏览器重绘:比如改变div的visibility, color、background-color等等

浏览器回流会消耗很多,对性能产生影响。相对来说,回流的影响会大于重绘

那问题是如何避免回流?

  1. CSS方面
    1. 使用 visibility 替换 display: none ,因为前者只会引起重绘,后者会引发回流
    2. 动画效果应用到position属性为absolute或fixed的元素上,避免影响其他元素的布局
    3. 控制动画速度可以选择 requestAnimationFrame
    4. 避免使用CSS表达式 (例如:calc())
    5. 使用css3硬件加速,可以让transform、opacity、filters这些动画不会引起回流重绘
  2. JavaScript方面
    1. 避免频繁操作style,最好一次性操作完成
    2. 避免频繁操作DOM、创建一个documentFragment(文档碎片)
    3. 避免频繁读取会引发回流/重绘的属性,如果确实需要多次使用,就用一个变量缓存起来

事件循环

  1. JS是单线程的
  2. 事件循环与渲染引擎是互斥的,浏览器会先走事件循环,事件循环结束后,再进行渲染引擎的渲染。
  3. 事件循环是怎么执行的?
    1. JS主进程代码执行
    2. 微任务执行
    3. 宏任务执行
    4. 微任务执行
    5. 宏任务执行
    6. …循环执行

宏任务主要包含:setTimeout、setInterval、setImmediate、I/O、UI交互事件
微任务主要包含:Promise、process.nextTick、MutaionObserver 等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/616486.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用Foxmail 7.2.25版本登录Microsoft 365 国内版(即世纪互联版)邮箱

近期微软在全球取消了在Exchange Online 的基本身份验证,取消了之后只有适配微软新式验证的客户端才支持登录,以往的直接配置IMAP/POP服务器地址和邮箱账号密码来登录的方式已经行不通了。 详情可以点击此链接了解:弃用 Exchange Online 中的…

APP性能测试中的几个重要概念,你都知道吗?

目录 前言 一. 内存  二. CPU 三. 流量 四. 电量 五. 启动时间 六. 总结 前言 我们在使用各种 App 的时候基本会关注到:这款软件挺耗流量的?运行起来设备掉电有点快嘛?切换页面的时候还会有卡顿等现象?如果遇到有这些问题…

程序员必看的书籍推荐

程序员必看的书籍推荐: 推荐1:Python 网络数据采集 作者:Ryan Mitchell 译者:陶俊杰,陈小莉 原书4.6星好评,一本书搞定数据采集 涵盖数据抓取、数据挖掘和数据分析 提供详细代码示例,快速解决实…

九、RGBA数据转YUV422存储

1、介绍 将RGBA转换为YUV数据,首先我们是知道有公式是可以将RGBA转换为YUV的,但是图像的每个像素都有一个R、G、B,A值的,但是YUV422(就是两个像素两个Y一个U一个V的),因此我们还需要将一个像素的RGBA四个值转换为YUV三…

VLAN内容

一、VLAN VLAN是拥有一组共同要求且与物理位置无关的终端设备的逻辑组。 终端设备包括终端用户工作站、服务器、路由器等诸如此类设备。 物理子网由想同物理电缆分段中的设备组成;逻辑子网由相互通信且物理位置无关的设备所组成。VLAN是一种逻辑子网,并…

华为OD机试真题 Java 实现【分糖果】【2022Q2 200分】,附详细解题思路

一、题目描述 小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。 当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。 小明最少需要多少次(取出、放回…

Sentinel-1(Resolution、Pixel Spacing)

目录 10m?还是20*22m? Resolution和Pixel Spacing 10m?还是20*22m? Sentinel-1 SAR GRD的分辨率为10m,基本上是常识了https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S1_GRD#description…

创建型设计模式06-单例模式

🧑‍💻作者:猫十二懿 ❤️‍🔥账号:CSDN 、掘金 、个人博客 、Github 🎉公众号:猫十二懿 单例模式 单例模式是一种创建型设计模式,它的目的是确保一个类只有一个实例,并…

RHCE 作业四

1.dns正向解析 一.初始准备 关闭安全软件安装bind软件 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld [rootserver ~]# yum install bind -y 配置服务端和客户端ip 二.DNS配置 1>服务端编辑bind主配置文件 [rootserver ~]# vim /et…

案例24:基于Springboot旅游景点导游平台系统开题报告

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

六、opengles显示YUV数据

工程文件名为:com.example.threetextureyuv 1、yuv回顾 1)yuv的由来 是在保持图片质量的前提下降低图片内存大小提供传输效率,并且传统的BGR格式 对于黑白图片不支持亮度的调节。 Y”表示明亮度(Luminance、Luma)&…

javascript基础二十九:JavaScript如何判断一个元素是否在可视区域中?

一、用途 可视区域即我们浏览网页的设备肉眼可见的区域,如下图 在日常开发中,我们经常需要判断目标元素是否在视窗之内或者和视窗的距离小于一个值(例如 100 px),从而实现一些常用的功能,例如:…

路径规划算法:基于和声优化的路径规划算法- 附代码

路径规划算法:基于和声优化的路径规划算法- 附代码 文章目录 路径规划算法:基于和声优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法和声…

chatgpt赋能python:Python如何倒序循环

Python如何倒序循环 在Python编程中,倒序循环是一种常见的操作。有时候我们需要倒序遍历一个序列,以便获取最后一个元素或在某些情况下需要运算。Python提供了多种方法来实现倒序循环。在本文中,我们将介绍Python中可用的不同循环遍历方法&a…

源代码加密技术分析

在源代码开发企业,如何保护好自己开发的产品,维护好自主知识产权,是企业开发过程中必要了解的,对于经常做开发的来讲对源代码加密也多种方法,对于传统的C或C之类的语言来说,要在Web上保护源代码是很容易的&…

快手流批一体数据湖构建实践

导读 本次将介绍快手为什么建设数据湖,在数据湖建设过程中遇到的问题和取得的成果,并对未来发展进行展望。 主要内容包括以下四大部分: 1. 数据湖架构 2. 基于 Hudi 构建快手数据湖 3. 快手的实践案例 4. 快手的发展规划 01 数据湖架构…

AB压测工具的介绍及安装

前言 今天我要和大家聊聊AB压测工具,如果你对网站性能测试感兴趣或有需要,那么这篇文章一定会帮到你。 我曾经也因为缺少良好的压力测试工具而苦恼,直到我发现了AB压测工具。它可以帮助我们测试网站在高并发情况下的性能表现,让…

4. 共享模型之管程(4.1 共享带来的问题)

4.1 共享带来的问题 1、Java 的体现2、问题分析3、临界区4、竞态条件 1、Java 的体现 两个线程对初始值为 0 的静态变量一个做自增,一个做自减,各做 5000 次,结果是 0 吗? public class TestCounterUnsafe {static int counter …

Arrays源码

介绍 java.util中的工具类,提供数组相关的常用操作,排序、比较、填充、二分查找等功能 该类还包含一个静态内部类ArrayList,其中add、remove、clear方法都是没有实现的。 常量&变量 /*** The minimum array length below which a para…

测试人总结怎么写?一篇文章详细总结全了!

目录 前言: 总结内容应包括哪些 不可缺少的模板-前期准备 总结过去-用数据来说话 纵向数据 横向数据 展望未来-做好规划 总结亮点 从其他人学到的点 总结弊病 结尾: 前言: 在这一年里,我作为一名测试人员,不断努力…