回流reflow

2024-06-12 15:48
文章标签 回流 reflow

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

浏览器渲染过程

  1. 解析HTML生成DOM树。
  2. 解析CSS生成CSSOM规则树。
  3. 将DOM树与CSSOM规则树合并在一起生成渲染树。
  4. 遍历渲染树开始布局,计算每个节点的位置大小信息。
  5. 将渲染树每个节点绘制到屏幕。

当浏览器遇到一个 script 标记时,DOM 构建将暂停,直至脚本完成执行,然后继续构建DOM

reflow(回流)

  • 为了重新渲染部分或全部的文档而重新计算文档中元素的位置和几何结构的过程
  • 元素的尺寸或位置发生了改变,导致需要重新计算并验证渲染树
  • 一个元素的回流导致了其所有子元素以及DOM中紧随其后的祖先元素的随后的回流。
与repaint区别
  • display:none 会触发reflow
  • visibility: hidden 语义隐藏元素,仍然占置着布局空间,只会触发repaint
  • 提醒
    • 在某些情况下,修改元素的样式,浏览器并不会立即reflow或repaint
    • 会缓冲在某一时间点,做一次增量异步reflow
避免回流或将其对性能的影响降到最低
  • 尽可能在DOM树的最末端改变class
  • 避免设置多层内联样式
  • 动画效果应用到position属性为absolute或fixed的元素上
  • 牺牲平滑度换取速度
  • 避免使用table布局
  • 避免使用CSS的JavaScript表达式

这篇关于回流reflow的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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

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

页面重绘和页面回流

页面重绘 页面重绘是指当元素样式改变时(包括颜色、背景色、可见性、透明度、文本内容、CSS动画和过度、改变类名、窗口大小变化以及修改字体相关属性等),浏览器需要重新绘制该元素的部分或全部内容,而不改变元素的位置和布局。 页面回流 当页面布局和几何属性发生改变时,浏览器需要重新计算元素的布局和几何属性,然后更新页面的渲染效果。 例如:修改元素的尺寸、位置等属性时,会触发该元素及其祖先元素的回流

vue开发中遇到Forced reflow while executing JavaScript took

在vue的开发过程中,遇到了如图所示的警告提示,我页面中包含有一个毫秒倒计时,swiper插件等,还有有一个答题卡组件,组件是通过来控制显示的,但是这里每次在页面点击改变isAnswerCardOpen的值是,就会出现上图的警告,而且也感觉页面会稍微卡一下,影响到了倒计时。   这个问题我暂时想不出来时啥原因引起的,猜测可能是因为毫秒倒计时不断调用回调函数引起的,然后影响到了其他组件。 后面

制造业回流遇上物联网浪潮,中国工厂的生与死?

制造业回流遇上物联网浪潮,中国工厂的生与死?   川普上任后,整天把“美国制造”挂在嘴上,同时也说服了像福特、英特尔等启动迟滞多年的美国境内工场扩增计划。当然,这让很多国内电子信息制造业人士紧张与不安,但这影响到底会有多深远? 中美的电子信息制造业是完全竞争与取代吗? 同时,马云在访美时提出连接美国百万中小企业的计划。这两件事上,产业或许有差别,但动机来源是相同的。其实这已经隐藏了中美电

浏览器渲染过程,DOM树和渲染树的区别,什么是重绘和回流?

HTML 经过解析生成 DOM树; CSS经过解析生成 Style Rules。 二者一结合生成了Render Tree。 通过layout计算出DOM要显示的宽高、位置、颜色。 最后渲染在界面上,用户就看到了 浏览器的渲染过程: 解析 HTML 构建 DOM(DOM 树),并行请求 css/image/jsCSS 文件下载完成,开始构建 CSSOM(CSS 树)CSSOM 构建结束后,和 D

前端性能优化篇之回流与重绘的概念及触发条件、如何避免回流与重绘?如何优化动画?documentFragment 是什么?用它跟直接操作 DOM 的区别是什么?

目录 回流与重绘的概念及触发条件回流(Reflow)触发回流的操作: 重绘(Repaint)触发重绘的操作: 回流与重绘的区别如何减少回流和重绘的频率 如何避免回流与重绘?1. 操作低层级的 DOM 节点2. 避免使用 table 布局3. 避免使用 CSS 表达式4. 合理处理样式变化5. 使用 absolute 或 fixed 定位6. 批处理 DOM 操作7. 隐藏操作元素8. 优化读

repaint和reflow(高效的操作DOM)

Email:longsu2010 at yeah dot net 我现在的工作对页面的性能要求很高,这一年多以来对这方面有了更深刻的认识,早就想写一些关于这些内容的文章,今天抽时间先写repaint和reflow。 使用js操作DOM时repaint和reflow是经常发生的,如果处理不好这就是页面性能的瓶颈,表现出来现象可能是用户操作响应不及时,浏览器进程cpu特别高。 什么是repai

ActiveMQ集群下的消息回流功能

"丢失"的消息   如果有broker1和broker2通过networkConnector连接,有一个consumer1连接到broker1,一个consumer2连接到broker2,程序往broker1上面发送30条消息,这时consumer2连接到broker2消费消息,当consumer2消费了15条消息时,broker2挂掉了。 但是还剩下15条消息在broker2上面,这些消息

浏览器渲染原理-解释回流重绘以及为什么transform效率高

浏览器是如何渲染页面 当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务,开启染流程。 整个渲染流程分为多个阶段,分别是: HTML 解析、样式计算、布局、分层、绘制、分块、光栅化、画每个阶段都有明确的输入输出,上一个阶段的输出会成为下一个阶段的输入。这样,整个渲染流程就形成了一套组织严密的

自定义字体样式引入使用方法、文本阴影、边框阴影、(边框)圆角、渐变、理解重绘与回流、渐进增强和优雅降级的区别

目录 1、文本阴影 text-shadow  2、边框阴影 box-shadow 3、自定义字体样式方法  引入与使用方法举例: 4、(边框)圆角 5、渐变 6、过渡  transition 7、理论知识:理解重绘(/重排)与回流 8、渐进增强和优雅降级的区别  1、文本阴影 text-shadow 语法:text-shadow: h-shadow v-shadow