重绘(repaints)与重排(reflows)

当页面布局和几何属性改变时就需要"重排"

避免在修改样式的过程中使用 offsetTop, scrollTop, clientTop, getComputedStyle() 这些属性, 它们都会刷新渲染队列

最小化重绘和重排, 尽量一次处理
a. 使元素脱离文档流(隐藏元素),进行处理后,再显示元素
b. 使用 documentFragment 或 innerHTML
c. 将原始元素拷贝到一个脱离文档的节点中, 修改副本, 完成后再替换原始元素

时间: 2024-10-24 16:08:35

重绘(repaints)与重排(reflows)的相关文章

浏览器的重绘repaints与重排reflows深入分析

重绘是一个元素外观的改变所触发的浏览器行为,浏览器会根据元素的新属性重新绘制,使元素呈现新的外观,接下来将详细介绍,需要了解的朋友可以参考下: 在项目的交互或视觉评审中,前端同学常常会对一些交互效果质疑,提出这样做不好那样做不好.主要原因是这些效果通常会产生一系列的浏览器重绘和重排,需要付出高昂的性能代价.那么,什么是浏览器的重绘和重排呢?二者何时发生以及如何权衡?如何在具体的开发过程中将重绘和重排引发的性能问题考虑进去?本文期待可以部分解释以上三个问题. 浏览器从下载文档到显示页面的过程是个复

浏览器的重绘(repaints)与重排(reflows)

转:http://www.css88.com/archives/4991#more-4991 在项目的交互或视觉评审中,前端同学常常会对一些交互效果质疑,提出这样做不好那样做不好.主要原因是这些效果通常会产生一系列的浏览器重绘和重排,需要 付出高昂的性能代价.那么,什么是浏览器的重绘和重排呢?二者何时发生以及如何权衡?如何在具体的开发过程中将重绘和重排引发的性能问题考虑进去?本文期 待可以部分解释以上三个问题. 浏览器从下载文档到显示页面的过程是个复杂的过程,这里包含了重绘和重排.各家浏览器引擎

页面重绘和回流以及优化

在讨论页面重绘.回流之前.需要对页面的呈现流程有些了解,页面是怎么把html结合css等显示到浏览器上的,下面的流程图显示了浏览器对页面的呈现的处理流程.可能不同的浏览器略微会有些不同.但基本上都是类似的. 1.  浏览器把获取到的HTML代码解析成1个DOM树,HTML中的每个tag都是DOM树中的1个节点,根节点就是我们常用的document对象.DOM树里包含了所有HTML标签,包括display:none隐藏,还有用JS动态添加的元素等. 2. 浏览器把所有样式(用户定义的CSS和用户代

页面优化,谈谈重绘(repaint)和回流(reflow)

一.前言 偶尔在面试过程中遇到过重汇与回流reflow的问题,毕竟页面优化也是考核一个开发者能力的关键之一,上篇文章聊了下documentfragment也是为了减轻回流问题,那么本篇文章好好介绍下重绘和回流. 二.重绘和回流是什么 怎么去理解这两个概念呢?从字面上理解,重绘,重新绘画,重新上色,较难产生联想的是回流. 我们都知道,一个页面从加载到完成,首先是构建DOM树,然后根据DOM节点的几何属性形成render树(渲染树),当渲染树构建完成,页面就根据DOM树开始布局了,渲染树也根据设置的

浏览器的回流和重绘及其优化方式

推荐了解的知识:基本的HTML,基本的JavaScript,以及一些css工作原理方面的知识 浏览器的渲染原理 css的加载和解析不会阻塞html文档的解析 css的解析会阻塞js的执行,必须等到CSSOM生成后才能执行js js的执行会阻塞html文档的解析 html一边解析一边显示 css必须完全解析完毕才能进入生成渲染树环节???????浏览器向服务器请求到了HTML文档后便开始解析,产物是DOM Tree(文档对象模型),如果有css,会根据css生成CSSOM(CSS对象模型),然后再

JS性能--DOM编程之重排与重绘

浏览器下载完页面中的所有组件----HTML标记,Js,CSS,图片等之后会解析并生成两个内部数据结构: DOM树  -------- 表示页面结构 渲染树   -------- 表示DOM节点如何显示 DOM树中的每一个需要显示的节点在渲染树中至少存在一个对应的节点(隐藏的DOM元素在渲染树中没有对应的节点). 渲染树中的节点被称为“帧“或者”盒“,符合CSS模型的定义,理解页面元素为一个具体填充(padding),边距(marging),边框(borders)和位置(position)的盒子

浏览器的渲染页面过程和重排、重绘

渲染页面的过程: 1.解析html源码,创建dom树.每个标签都是一个节点. 2.解析css 3.构建dom树,并且计算出样式(padding.margin等),然后构建 渲染树.对于渲染树和dom树的不同是:dom树的每一个标签都是一个节点,但是渲染树会忽略掉不需要渲染的元素,例如head.display:none的元素.渲染树中的每一个节点都存储有对应的css属性. 4.渲染树创建好后,浏览器就可以根据渲染树直接把页面绘制到屏幕上. 重排和重绘: 重排:就是渲染树的一部分必须要更新 并且节点

前端性能优化之重排和重绘

一.重排 & 重绘 有经验的大佬对这个概念一定不会陌生,"浏览器输入URL发生了什么".估计大家已经烂熟于心了,从计算机网络到JS引擎,一路飞奔到浏览器渲染引擎. 经验越多就能理解的越深. 感兴趣的同学可以看一下这篇文章,深度和广度俱佳: <从输入 URL 到页面加载的过程?如何由一道题完善自己的前端知识体系!> 切回正题,我们继续探讨何为重排.浏览器下载完页面所有的资源后,就要开始构建DOM树,与此同时还会构建渲染树(Render Tree).(其实在构建渲染树之

Repaints and Reflows 重绘和重排版

当浏览器下载完所有页面HTML标记,JavaScript,CSS,图片之后,它解析文件并创建两个内部数据 一棵DOM树 表示页面结构 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-st