首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

回流_html回流

文章目录 css图层 图层创建的条件 (Repaint) 回流 触发的属性 触发回流的属性 常见的触发回流的操作 优化方案 requestAnimationFrame—-请求动画帧 写在最后 学习目标...: 了解前端Dom代码、css样式、js逻辑代码到浏览器展现过程 了解什么是图层 了解回流 了解前端层面针对重回流如何优化 css图层 浏览器在渲染一个页面时,会将页面分为很多个图层,图层有大有小...不会带来重新布局,所以并不一定伴随回流。 需要注意的是:是以图层为单位,如果图层中某个元素需要,那么整个图层都需要。...计算这些值的过程称为布局或回流”不一定需要”回流”,比如改变某个网页元素的颜色,就只会触发””,不会触发”回流”,因为布局没有改变。...“回流”大多数情况下会导致””,比如改变一个网页元素的位置,就会同时触发”回流”和””,因为布局改变了。

1.4K20

回流

HTML默认是流式布局,css与js会打破这种布局,改变DOM的几何属性与外观属性。在绘制时根据渲染树布局,再根据布局绘制,这就是回流回流:改变几何属性的渲染。又称重排。...这时只会回流或只有,因此引出一个定向法则:回流必定引发不一定引发回流。 用户的交互操作引发了网页的渲染。...避免回流 1.使用visibility:hidden替换display:none 2.使用transform代替top top是几何属性,操作top会改变节点位置引发回流,使用transform:translate3d...4.避免规则层级过多 浏览器的CSS解析器解析css文件时,对CSS规则是从右到左匹配查找,样式层级过多会影响回流效率,建议保持CSS规则在3层左右。...7.将频繁回流的节点设置为图层。 在浏览器中设置频繁回流的节点为一张新图层,那新图层就能够阻止节点的渲染行为影响别的节点,这张图层中如何变化都无法影响到其他图层。

63720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    回流

    repaint: 当元素的一部分属性发生变化,如外观背景色不会引起布局变化而需要重新渲染的过程叫做 回流一定会引发 但是 不一定引发回流 引发回流的情况 : 首当其冲自然是dom...浏览器窗口发生变化-resize事件发生时 var s = document.body.style; s.padding = "2px"; // 回流+ s.border = "1px solid...red"; // 再一次 回流+ s.color = "blue"; // 再一次 s.backgroundColor = "#ccc"; // 再一次 s.fontSize =..."14px"; // 再一次 回流+ // 添加node,再一次 回流+ document.body.appendChild(document.createTextNode('abc!'))...; 说到这里大家都知道回流比重的代价要更高,回流的花销跟render tree有多少节点需要重新构建有关系,假设你直接操作body,比如在body最前面插入1个元素,会导致整个render tree

    87410

    页面优化——回流

    一、写在前面 页面优化在面试的过程中经常遇到的问题,今天就来总计一下回流的问题。...二、回流是什么 我们都知道一个页面从加载到完成,首先是构建DOM树,然后根据DOM节点进行几何布局形成render树(渲染树),当渲染树构建完成后,页面就根据DOM树开始布局,渲染树也根据设置的样式渲染这些节点...在比如说,我们给一个元素修改颜色,这样的行为是不会影响页面的布局的,DOM树不会发生改变,但是颜色变了,渲染树得重新绘制,这就是。 所以说回流一定会触发不一定触发回流。...三、怎么样减少回流 回流会重构DOM树,渲染树也得重新渲染,比较麻烦,哪些行为可以引发回流,如何去避免呢? 1、DOM的删除行为 比如删除某个节点,或者给父元素插入子节点,这类操作都会触发回流。...5、页面初次渲染触发回流 页面的初次渲染触发回流这样无法避免。 6、浏览器窗口尺寸的改变 resize事件的发生也会触发回流。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    82220

    HTML中的回流

    在认识回流之前,我们先认识一下一个页面加载的时候,会发生什么?   页面加载时,生成一个DOM树,DOM Tree里包含了构成页面所有的标签。...每个页面至少发生一次回流/重排,就是页面第一次被加载时。当页面中的元素只是外观或风格被改变不影响布局,比如更换背景色background-color,这个过程就是。...比如改变某个元素的背景色、文字颜色、边框颜色等等 影响回流(reflow)/重排(relayout)的因素 影响(replaint)的因素 元素的布局和几何属性改变时就会触发reflow。...(比如颜色的改变),重排必然导致(比如改变网页位置)。...这样多次重排,变成一次重排 减少 reflow/repaint: (1)不要一条一条地修改 DOM 的样式。

    1.4K20

    DOM优化之回流

    ——《高性能 JavaScript》 浏览器内核中的JS 引擎和渲染引擎是独立存在的,当我们用JS去操作DOM时,本质上是JS引擎和渲染引擎之间进行的“跨界交流”。...#回流 JS操作DOM很慢,而且修改DOM还会引发它的外观、样式、大小、位置的改变,就会触发流或。...这个过程就是回流(也叫重排)。...:当我们对 DOM 的修改导致了样式的变化、却并未影响其几何属性(比如修改了颜色或背景色)时,浏览器不需重新计算元素的几何属性、直接为该元素绘制新的样式(跳过了上图所示的回流环节)。...这个过程叫做。 由此可以看出,不一定导致回流,但是回流一定会导致。 优化的关键,就是把回流的次数最小化。 #如何优化 知道了DOM慢的原因,我就可以逐步优化了。

    89110

    前端性能优化 | 回流

    一、回流的概念在 HTML 中,每个元素都可以理解成一个盒子,在浏览器解析过程中,会涉及到回流回流(reflow):当DOM的结构发生改变或者某个元素的样式发生变化时,浏览器需要重新计算并重新布局...的性能开销较小,因只是简单地更新元素的样式。回流都会带来性能消耗,因此在前端开发中,要尽可能减少回流的次数,以提高页面的渲染性能。...注意:当触发回流时,一定会触发,但是不一定会引发回流三、如何减少回流浏览器优化机制浏览器针对回流,本身也具备一定的优化机制,但是仅是最基础的。...减少回流的措施了解了回流的触发条件,我们可以尽量避免不该有的操作,减少回流,提高浏览器渲染性能使用CSS动画代替JavaScript动画:CSS动画是利用浏览器的硬件加速,性能更高效。...我们学习到了回流的定义和区别,以及触发回流的常见操作。同时,我们提供了一些减少回流的优化措施,如使用transform属性进行动画、使用position属性进行定位、缓存布局信息等。

    1.2K20

    回流(Repaint & Reflow),如何优化

    回流一定会发生不一定会引发回流 4.浏览器优化 现代浏览器大多都通过队列机制来批量更新布局,浏览器会把修改操作放在队列中,至少一个浏览器刷新(16.6ms)才清空队列,但当你获取布局信息时,队列中可能存在影响这写属性和方法返回值的操作...,即使没有,浏览器也会强制清空队列,触发回流来保证返回正确的值 主要有一下方法和属性 offsetTop、offsetLeft、offsetWidth、offsetHeight scrollTop...5.减少回流 1.css ....减少回流   1.CSS 使用 transform 替代 top 使用 visibility 替换 display: none ,因为前者只会引起重,后者会引发回流(改变了布局) 避免使用...避免频繁读取会引发回流/的属性,如果确实需要多次使用,就用一个变量缓存起来。 对具有复杂动画的元素使用绝对定位,使它脱离文档流,否则会引起父元素及后续元素频繁回流

    76510

    浏览器渲染之回流

    前言 回流是前端开发的高频词汇之一,你可以在各种面经,性能优化相关文章可以看到,但是很多都是草草带过。本文带你从浏览器渲染流程中了解回流的原理。...按照渲染流水线的顺序可知,回流一定会触发,而不一定发生回流 如果想知道更改任何指定 CSS 属性将触发上述三个版本中的哪一个,请查看 CSS 触发器 (https://csstriggers.com...如何减少回流 上面我们已经介绍了像素管道相关内容,知道回流的代价是非常昂贵的,如果我们不停的在改变页面的布局,就会造成浏览器耗费大量的开销在进行页面的计算,对用户体验非常的不友好。...减少回流前端性能优化重要手段之一。 减少强制同步布局 避免频繁读取会引发回流/的属性,如果确实需要多次使用,就用一个变量缓存起来。...,浏览器会维护一个队列,把所有引起回流的操作放入队列中,如果队列中的任务数量或者时间间隔达到一个阈值的,浏览器就会将队列清空,进行一次批处理,这样可以把多次回流变成一次。

    1.7K40

    你真的了解回流

    浏览器的渲染过程 本文先从浏览器的渲染过程来从头到尾的讲解一下回流,如果大家想直接看如何减少回流,优化性能,可以跳到后面。...既然知道了浏览器的渲染过程后,我们就来探讨下,何时会发生回流。 何时发生回流 我们前面知道了,回流这一阶段主要是计算节点的位置和几何信息,那么当页面布局和几何信息发生变化的时候,就需要回流。...减少回流 好了,到了我们今天的重头戏,前面说了这么多背景和理论知识,接下来让我们谈谈如何减少回流。 最小化和重排 由于和重排可能代价比较昂贵,因此最好就是可以减少它的发生次数。...css3硬件加速(GPU加速) 比起考虑如何减少回流,我们更期望的是,根本不要回流。这个时候,css3硬件加速就闪亮登场啦!! 划重点: 1....我通过使用chrome的Performance捕获了动画一段时间里的回流情况,实际结果如下图: 添加描述 从图中我们可以看出,在动画进行的时候,没有发生任何的回流

    4.9K50

    你真的了解回流

    浏览器的渲染过程 本文先从浏览器的渲染过程来从头到尾的讲解一下回流,如果大家想直接看如何减少回流,可以跳到后面。(这个渲染过程来自MDN) ?...既然知道了浏览器的渲染过程后,我们就来探讨下,何时会发生回流。 何时发生回流 我们前面知道了,回流这一阶段主要是计算节点的位置和几何信息,那么当页面布局和几何信息发生变化的时候,就需要回流。...页面一开始渲染的时候(这肯定避免不了) 浏览器的窗口尺寸变化(因为回流是根据视口的大小来计算元素的位置和大小的) 注意:回流一定会触发,而不一定会回流 根据改变的范围和程度,渲染树中或大或小的部分需要重新计算...减少回流 好了,到了我们今天的重头戏,前面说了这么多背景和理论知识,接下来让我们谈谈如何减少回流。 最小化和重排 由于和重排可能代价比较昂贵,因此最好就是可以减少它的发生次数。...css3硬件加速(GPU加速) 比起考虑如何减少回流,我们更期望的是,根本不要回流。这个时候,css3硬件加速就闪亮登场啦!!

    1.3K21

    什么是回流 (Reflow & Repaint)

    Contents 1 写在前面 2 回流(Reflow) 3 (Repaint) 4 影响 5 避免回流 6 总结 写在前面 在讨论今天的主角之前,我们要先了解一下浏览器的渲染机制。...现代浏览器会对频繁的回流操作进行优化,浏览器会维护一个队列,当我们页面发生回流时,有时候并不是立即执行,而是先放入维护的队列中,到达一定时间后统一去进行绘制 当你访问以下属性或方法时,浏览器会立刻清空队列...因为在display属性为none的元素上进行的DOM操作不会引发回流。 避免频繁读取会引发回流/的属性,如果确实需要多次使用,就用一个变量缓存起来。...总结 我们把页面文档比作一个积木的话,我们抽离中间或者底部的一个积木块,我们的积木会重新找到重心并且稳固下来,我们把这个过程称之为回流 我们在某个积木上涂上颜色,这并不会造成整个积木的稳定,我们把这个过程叫做...或者说,我们简单理解会引起元素位置变化的就会reflow,会引起位置变化的,只是在以前的位置进行改变背景颜色等,只会repaint 本文首发于什么是回流 (Reflow & Repaint)

    87110

    页面回流(重排)以及优化

    ; 5、页面渲染初始化; 6、浏览器窗口尺寸改变——resize事件发生时; 注意:回流必将引起重,而不一定会引起回流。...var s = document.body.style; s.padding = "2px"; // 回流+ s.border = "1px solid red"; // 再一次 回流+ s.color...= "blue"; // 再一次 s.backgroundColor = "#ccc"; // 再一次 s.fontSize = "14px"; // 再一次 回流+ // 添加node...; 如何减少回流 减少回流其实就是需要减少对render tree的操作(合并多次多DOM和样式的修改),并减少对一些style信息的请求,尽量利用好浏览器的优化策略。具体方法有: 1....让要操作的元素进行”离线处理”,处理完后一起更新 a) 使用DocumentFragment进行缓存操作,引发一次回流; b) 使用display:none技术,只引发两次回流; c) 使用

    1K40

    浏览器的回流 (Reflow & Repaint)

    作者:腰花 原文链接:https://juejin.im/post/5a9923e9518825558251c96a 写在前面 在讨论回流之前,我们要知道: 浏览器使用流布局模型 (Flow Based...一句话:回流必将引起重不一定会引起回流回流 (Reflow) 当Render Tree中部分或全部元素的尺寸、结构、或某些属性发生改变时,浏览器重新渲染部分或全部文档的过程称为回流。...性能影响 回流比重的代价要更高。 有时即使仅仅回流一个单一的元素,它的父元素以及任何跟随它的元素也会产生回流。...现代浏览器会对频繁的回流操作进行优化: 浏览器会维护一个队列,把所有引起回流的操作放入队列中,如果队列中的任务数量或者时间间隔达到一个阈值的,浏览器就会将队列清空,进行一次批处理,这样可以把多次回流变成一次...因为在display属性为none的元素上进行的DOM操作不会引发回流。 避免频繁读取会引发回流/的属性,如果确实需要多次使用,就用一个变量缓存起来。

    68420

    客户端渲染页面、DOM回流、避免DOM的回流

    客户端渲染页面 浏览器渲染页面的步骤 解析HTML,生成DOM树,解析CSS,生成CSSOM树 将DOM树和CSSOM树结合,生成渲染树(Render Tree) Layout(回流):根据生成的染树...,计算它们在设备视口(viewport)内的确切位置和大小,这个阶段是回流 Painting(): 根据潼染树以及回流得到的几何信息,得到节点的绝对像素 Display:将像素发送给GPU,展示在页面上...DOM回流 :元素样式的改变(但宽高、大小、位置等不变) 回流:元素的大小或者位置发生了变化(当页面布局和几何信息发生变化的时候),触发了重新布局,导致渲染树重新计算布局和渲染 **注意...:**回流一定会触发,而不一定会回流 前端性能优化之 : 避免DOM的回流 放弃传统操作dom的时代,基于vue/react开始数据影响视图模式 分离读写操作(现代的浏览器都有渲染队列的机制

    12910

    你真的了解回流吗?(面试必问)

    浏览器的渲染过程 本文先从浏览器的渲染过程来从头到尾的讲解一下回流,如果大家想直接看如何减少回流,可以跳到后面。...既然知道了浏览器的渲染过程后,我们就来探讨下,何时会发生回流。 何时发生回流 我们前面知道了,回流这一阶段主要是计算节点的位置和几何信息,那么当页面布局和几何信息发生变化的时候,就需要回流。...减少回流 好了,到了我们今天的重头戏,前面说了这么多背景和理论知识,接下来让我们谈谈如何减少回流。 最小化和重排 由于和重排可能代价比较昂贵,因此最好就是可以减少它的发生次数。...css3硬件加速(GPU加速) 比起考虑如何减少回流,我们更期望的是,根本不要回流。这个时候,css3硬件加速就闪亮登场啦!!...总结 本文主要讲了浏览器的渲染过程、浏览器的优化机制以及如何减少甚至避免回流,希望可以帮助大家更好的理解回流

    2.1K40

    chrome对页面回流以及优化进行优化

    则就叫称为重。注意:回流必将引起重,而不一定会引起回流回流何时发生:当页面布局和几何属性改变时就需要回流。...+s.border = "1px solid red"; // 再一次 回流+s.color = "blue"; // 再一次s.backgroundColor = "#ccc"; // 再一次... s.fontSize = "14px"; // 再一次 回流+// 添加node,再一次 回流+document.body.appendChild(document.createTextNode...因为在display属性为none的元素上进行的DOM操作不会引发回流。避免频繁读取会引发回流/的属性,如果确实需要多次使用,就用一个变量缓存起来。...参看文章:回流:CSS性能让JavaScript变慢?

    88710
    领券