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

回流重绘

repaint: 当元素的一部分属性发生变化,如外观背景色不会引起布局变化而需要重新渲染的过程叫做重绘 回流一定会引发重绘 但是 重绘不一定引发回流 引发回流的情况 : 首当其冲自然是dom...但除了render树的直接变化,当获取一些属性时,浏览器为取得 正确的值也会触发回流。这样就使得浏览器的优化失效了。..."14px"; // 再一次 回流+重绘 // 添加node,再一次 回流+重绘 document.body.appendChild(document.createTextNode('abc!'))...; 说到这里大家都知道回流比重绘的代价要更高,回流的花销跟render tree有多少节点需要重新构建有关系,假设你直接操作body,比如在body最前面插入1个元素,会导致整个render tree...回流,这样代价当然会比较高,但如果是指body后面插入1个元素,则不会影响前面元素的回流

83410

页面优化——重绘回流

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

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

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

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

9410

DOM优化之重绘回流

——《高性能 JavaScript》 浏览器内核中的JS 引擎渲染引擎是独立存在的,当我们用JS去操作DOM时,本质上是JS引擎渲染引擎之间进行的“跨界交流”。...#回流重绘 JS操作DOM很慢,而且修改DOM还会引发它的外观、样式、大小、位置的改变,就会触发重流或重绘。...回流:当我们对 DOM 的修改引发了 DOM 几何尺寸的变化(比如修改元素的宽、高或隐藏元素等)时,浏览器需要重新计算元素的几何属性(其他元素的几何属性位置也会因此受到影响),然后再将计算的结果绘制出来...这个过程就是回流(也叫重排)。...由此可以看出,重绘不一定导致回流,但是回流一定会导致重绘。 优化的关键,就是把重绘回流的次数最小化。 #如何优化 知道了DOM慢的原因,我就可以逐步优化了。

84810

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

1.浏览器渲染机制 浏览器采用流式布局(flow Based Layout) 浏览器会把HTML解析成DOM,把css解析成CSSDM,DOMCSSOM合并就会产生渲染树(Render Tree) 有了...renderTree 我们就知道节点的样式,然后计算大小位置,把节点绘制到页面上 由于浏览器的流式布局,对renderTree的计算通常遍历一次就可以完成,table内部元素除外,他们可能要计算多次,...3.回流 回流是布局几何属性改变成为回流回流是影响浏览器的关键因素,因为涉及到部分页面(或者整个页面)的布局更新,一个元素的回流可能导致所有子元素以及紧随其后的兄弟节点、祖先节点元素的回流。...回流一定会发生重绘,重绘不一定会引发回流 4.浏览器优化 现代浏览器大多都通过队列机制来批量更新布局,浏览器会把修改操作放在队列中,至少一个浏览器刷新(16.6ms)才清空队列,但当你获取布局信息时,队列中可能存在影响这写属性方法返回值的操作...,即使没有,浏览器也会强制清空队列,触发重绘回流来保证返回正确的值 主要有一下方法属性 offsetTop、offsetLeft、offsetWidth、offsetHeight scrollTop

69610

你真的了解回流重绘吗

浏览器的渲染过程 本文先从浏览器的渲染过程来从头到尾的讲解一下回流重绘,如果大家想直接看如何减少回流重绘,优化性能,可以跳到后面。...既然知道了浏览器的渲染过程后,我们就来探讨下,何时会发生回流重绘。 何时发生回流重绘 我们前面知道了,回流这一阶段主要是计算节点的位置几何信息,那么当页面布局几何信息发生变化的时候,就需要回流。...页面一开始渲染的时候(这肯定避免不了) 浏览器的窗口尺寸变化(因为回流是根据视口的大小来计算元素的位置大小的) 注意:回流一定会触发重绘,而重绘不一定会回流 根据改变的范围程度,渲染树中或大或小的部分需要重新计算...减少回流重绘 好了,到了我们今天的重头戏,前面说了这么多背景理论知识,接下来让我们谈谈如何减少回流重绘。 最小化重绘重排 由于重绘重排可能代价比较昂贵,因此最好就是可以减少它的发生次数。...该过程的第一步第三步可能会引起回流,但是经过第一步之后,对DOM的所有修改都不会引起回流重绘,因为它已经不在渲染树了。

4.9K50

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

回流何时发生: 当页面布局几何属性改变时就需要回流。...下述情况会发生浏览器回流: 1、添加或者删除可见的DOM元素; 2、元素位置改变; 3、元素尺寸改变——边距、填充、边框、宽度高度 4、内容改变——比如文本改变或者图片大小改变而引起的计算值宽度高度改变...; 如何减少回流、重绘 减少回流、重绘其实就是需要减少对render tree的操作(合并多次多DOM样式的修改),并减少对一些style信息的请求,尽量利用好浏览器的优化策略。具体方法有: 1....让要操作的元素进行”离线处理”,处理完后一起更新 a) 使用DocumentFragment进行缓存操作,引发一次回流重绘; b) 使用display:none技术,只引发两次回流重绘; c) 使用...cloneNode(true or false) replaceChild 技术,引发一次回流重绘;

95540

你真的了解回流重绘吗

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

1.2K21

什么是共晶焊回流

焊接层除了为器件提供机械连接电连接之外,还需为器件提供良好的散热通道。 芯片导电的焊接方式大概有以下几种: 1)用导电胶,就是胶水可以导电,聚合物里面加的有金属。...粘上凝固就可以用,但是导热性能导电性一般。 2)共晶焊 共晶焊是一个很有意思的现象,可以在较低的温度下焊接两种不同的金属。 又称低熔点合金焊接。...但是如果按照重量比为2.85 %的硅97.15%的金组合,就能形成熔点为 363 ℃的共晶合金体。这就是金硅共晶焊的理论基础。...共晶回流焊主要针对的是PbSn、纯Sn、SnAg等焊接金属材料。这些金属的特点是回流温度相对较低。这一方法的特点是工艺简单、成本低,但其回流温度较低,不利于二次回流。...回流焊设备的原理图 真空回流焊炉 1、真空回流炉可以提供很低的氧气浓度适当的还原性气氛,这样焊料的氧化程度得到大大地降低; 2、由于焊料氧化程度的降低,这样氧化物焊剂反应的气体大大减少,这样就减少了空洞产生的可能性

78020

十人九问,回流重排怎么优化?

、宽度)、内容(文本、图片替换)变化; 浏览器窗口大小变化; display:none,脱离了文档流; 3.这两者之间有什么关系 “重绘"不一定需要"重排”,但是,“重排"必然导致"重绘”, 4.回流重排怎么优化...优化方案:减少"重排""重绘"的频率成本,尽量少触发重新渲染。...(因为隐藏元素不在render树内,因此修改隐藏元素不会触发回流重绘) 4.将复杂的节点元素脱离文档流,降低回流成本 5.将CSS的引入文件放在文件头部,js引入文件放到尾部 6. css3硬件加速...(GPU加速) 减少重绘回流的方法 css: 避免使用table布局。...因为在display属性为none的元素上进行的DOM操作不会引发回流重绘。 具有复杂动画的元素使用绝对定位,使它脱离文档流 比起考虑如何减少回流重绘,我们更期望的是,根本不要回流重绘。

10110

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

浏览器的渲染过程 本文先从浏览器的渲染过程来从头到尾的讲解一下回流重绘,如果大家想直接看如何减少回流重绘,可以跳到后面。...既然知道了浏览器的渲染过程后,我们就来探讨下,何时会发生回流重绘。 何时发生回流重绘 我们前面知道了,回流这一阶段主要是计算节点的位置几何信息,那么当页面布局几何信息发生变化的时候,就需要回流。...页面一开始渲染的时候(这肯定避免不了) 浏览器的窗口尺寸变化(因为回流是根据视口的大小来计算元素的位置大小的) 注意:回流一定会触发重绘,而重绘不一定会回流 根据改变的范围程度,渲染树中或大或小的部分需要重新计算...减少回流重绘 好了,到了我们今天的重头戏,前面说了这么多背景理论知识,接下来让我们谈谈如何减少回流重绘。 最小化重绘重排 由于重绘重排可能代价比较昂贵,因此最好就是可以减少它的发生次数。...该过程的第一步第三步可能会引起回流,但是经过第一步之后,对DOM的所有修改都不会引起回流,因为它已经不在渲染树了。

2K40

React.js 结合 Next.js 的入门与 Snapaper 完全重构

借着讨论 Nuxt.js 的机会和他聊了一聊,了解了一些他参加的 Co-op 项目滑大数学系的情况......不过 React.js 的生态确实非常成熟多元,各个大厂也是大多使用其作为前端框架。比如知乎、阿里云、腾讯云等,当然 Vue 也是在被 Bilibili 使用的......不过有了 Vue.js 的一些基础后入门应该算是蛮快的,两天就重构完了 Snapaper (https://www.snapaper.com) 呢 React 入门 React.js 当然是有中文文档的...具体可以参考之前关于 Nuxt.js 的文章: 博客 Nuxt.js 移植重构与服务端渲染入门实现 ID: 659 发布于: 2020-03-13 20:09:20 CSS 预渲染 Next.js 中内置的是对...于是这次的重构又是不同的设计风格了...

4.3K20

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

注意:回流必将引起重绘,而重绘不一定会引起回流回流何时发生:当页面布局几何属性改变时就需要回流。...width/height/padding/border/marginfont/line-height/font-weight/postion/display/float/clear/js操作DOM,修改...class属性,修改样式表,修改文档内容,修改元素计算样式让我们看看下面的代码是如何影响回流重绘的:ar s = document.body.style;s.padding = "2px"; // 回流...因为在display属性为none的元素上进行的DOM操作不会引发回流重绘。避免频繁读取会引发回流/重绘的属性,如果确实需要多次使用,就用一个变量缓存起来。...转载本站文章《chrome对页面重绘回流以及优化进行优化》,请注明出处:https://www.zhoulujun.cn/html/webfront/browser/webkit/2016_0506_

73810
领券