面试官:说说回流和重绘吧

2023-12-04 19:52
文章标签 面试官 回流 重绘

本文主要是介绍面试官:说说回流和重绘吧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 回流

当渲染树中,当元素尺寸、结构、属性发生变化时,浏览器需要重新渲染部分或者全部文档的过程,就叫做回流

一些会造成回流的操作:

  1. 页面的首次渲染
  2. 浏览器的窗口大小变化
  3. 元素内容、字体发生变化
  4. 元素尺寸、位置发生变化
  5. 添加或者删除元素
  6. 激活CSS伪类
  7. 查询某些属性或者调用方法,例如 offset style

在触发回流的时候,由于浏览器渲染是基于流式布局的,当触发回流时,会造成周围的 DOM 元素发生重新排列

2. 重绘

当页面中某些元素的样式,但是不会影响其在文档流的位置时候,浏览器会对元素进行重新绘制,就叫做重绘

一些会造成重绘的操作:

  1. color、background
  2. outline: outline-color、outline-width
  3. border-radius、visibility、box-shadow

💥💥💥注意

当触发回流时,一定会触发重绘,但是重绘不一定回流

3. 如何避免回流和重绘呢?

  1. 操作DOM时,尽量在低层级的 DOM 节点进行操作
  2. 对于经常操作的DOM,使用absolute或者fixed,脱离文档流
  3. 避免重复操作 DOM ,可以创建一个文档片段DocumentFragment,在它上面应用所用的DOM操作,然后再把它添加到文档中
  4. 先把元素设置为display:none操作结束后再把它显示出来,这样多次重流,只会发生一次

4. 引申出来的问题

如何优化动画?

使用 absolute 或者 fixed 脱离文档流

documentFragment 是什么?

DocumentFragment,文档片段节点,一个没有父对象的最小文档对象,文档片段不会在页面中显示,但是可以用来存储或者操作节点,从而提高DOM操作的性能,

这篇关于面试官:说说回流和重绘吧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/454708

相关文章

【吊打面试官系列-Redis面试题】说说 Redis 哈希槽的概念?

大家好,我是锋哥。今天分享关于 【说说 Redis 哈希槽的概念?】面试题,希望对大家有帮助; 说说 Redis 哈希槽的概念? Redis 集群没有使用一致性 hash,而是引入了哈希槽的概念,Redis 集群有 16384 个哈希槽,每个 key 通过 CRC16 校验后对 16384 取模来决定放置哪个槽, 集群的每个节点负责一部分 hash 槽。

MFC 控件重绘(2) NM_CUSTOMDRAW, WM_DRAWITEM, 虚函数DrawItem

控件重绘有三种方法: 1 设定界面属性 2 利用Windows的消息机制,通过Windows消息映射(Message Mapping)和反映射(Message Reflecting),在合适的时机修改控件的状态和行为。此方式涉及NM_CUSTOMDRAW和WM_DRAWITEM 3 利用虚函数机制,重载虚函数。即DrawItem虚函数。 对于NM_CUSTOMDRAW,某些支持此消息的控件

面试官:synchronized的锁升级过程是怎样的?

大家好,我是大明哥,一个专注「死磕 Java」系列创作的硬核程序员。 回答 在 JDK 1.6之前,synchronized 是一个重量级、效率比较低下的锁,但是在JDK 1.6后,JVM 为了提高锁的获取与释放效,,对 synchronized 进行了优化,引入了偏向锁和轻量级锁,至此,锁的状态有四种,级别由低到高依次为:无锁、偏向锁、轻量级锁、重量级锁。 锁升级就是无锁 —>

【Unity面经】实习篇:面试官常问的一百个面试题

👨‍💻个人主页:@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 专栏交流🧧🟥Unity100个实战基础✨🎁🟦 Unity100个精华一记✨🎁🟩 Unity50个demo案例教程✨🎁🟨 Unity100个精华细节BUG✨🎁🟨 Unity100个面试题✨🎁 文章

作为面试官的一点点感悟,谈谈技术人的成长之路

因为工作上的原因,做过几次面试官,面试的同学有应届生,也有工作3-5年的老技术人。最近也频繁作为面试官帮助筛选候选人,中间有很多值得深思的东西,我记录了下来分享给大家。 以下观点仅为个人观点,不代表任何公司的立场。        01 面试不是简单的你问我答 一般来讲,作为面试官和候选人进行沟通的第一个问题是一般是自我介绍,整个自我介绍的情况应该控制在2分钟左右,阐述自己的教育背景,项目经历

【对线面试官】阿里面试经历,有些人走一步看一步就挂了

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 这个其实说来就话长了。是小编曾经面试阿里妈妈的经历。 这次面试最终在HR面挂掉,以至于后面回忆起来,仍然是一桩美谈。 这次面试长达一个月之久,共经历了4轮技术面,1轮HR。前四轮面试过关斩将,简直开了挂一般,跟面试官正面对线,丝毫不虚。听我一一道来。 第一轮 第一面是电话面试,晚上10点半。我特么一脸问号?你们这是刚加完班吧?事实上我

【大数据哔哔集20210122】面试官问我HDFS丢不丢数据?我啪就把这个文章甩到他脸上

数据一致性 HDFS作为分布式文件系统在分布式环境下如何保证数据一致性。HDFS中,存储的文件将会被分成若干的大小一致的block分布式地存储在不同的机器上,需要NameNode节点来对这些数据进行管理,存储这些block的结点称为DataNode,NameNode是用来管理这些元数据的。 NameNode保证元数据的一致性 客户端上传文件时,NameNode首先往edits log文件

什么是回流与重绘,如何尽力避免

回流(reflow)和重绘(repaint)是浏览器渲染页面的两个不同过程。 回流概念(reflow) 当我们对 DOM 的修改引发了 DOM 几何尺寸的变化(比如修改元素的宽、高或隐藏元素等)时,浏览器需要重新计算元素的几何属性(其他元素的几何属性和位置也会因此受到影响),然后再将计算的结果绘制出来。这个过程就是回流(也叫重排)。【重新排列布局,即打碎重组】 重绘概念(repaint)

几乎每一位面试官都会关注的能力,你做到了吗?

又到了金九银十招聘季,虽然说大环境不好,但对于不少想要挪窝的同学来说,这个时间段还是一个不错的窗口期。 我也借此机会在Boss上看了不少岗位,发现很多岗位JD都有一条关于“功能设计规范”的要求。 相比较于设计岗的设计规范原则,产品岗的设计规范会要求你对业务、产品有更强的纵深性,但这种基础且重要的能力被太多人忽视了。 因此,我列举了以下11点产品设计规范,同学们可以自查一下看看日常有没有做到

BrushNet重绘电商商品背景效果测试

🎨背景 之前写过一篇文章,简单的介绍了brushnet这个局部重绘节点,如何安装和使用可以参考我之前写的这篇文章,本篇重点测试下在背景生成这部分,brushnet是不是跟默认的inpaint有比较大的效果提升。 上一篇节点介绍内容链接: ComfyUI-BrushNet(局部重绘)节点安装及效果、模型下载及详细使用方法✨_brushnet模型放哪里-CSDN博客 🎄测试 首先搭建个基