美文网首页
浏览器的重绘与重排

浏览器的重绘与重排

作者: 橘子柚子橙子_ | 来源:发表于2018-07-15 00:51 被阅读0次

最近在读《高性能JavaScript》这本书,有些知识点在此记录一下

重排与重绘的概念

当DOM的变化影响了元素的几何属性(宽、高)——比如改变边框宽度或给段落增加文字,导致行数增加——浏览器需要重新计算元素的几何属性,同样其他元素的几何属性和位置也会受到影响。
浏览器会使渲染树中受到影响的部分失效,并重新构造渲染树。这个过程被称为“重排(reflow)”。完成重排后,浏览器会重新绘制受影响的部分到屏幕中,该过程称为“重绘(repaint)”

重排发生的条件

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

  1. 添加或删除可见的DOM元素
  2. 元素位置改变
  3. 元素尺寸改变
  4. 内容改变
  5. 页面渲染器初始化
  6. 浏览器窗口尺寸变化

最小化重绘和重排

重绘和重排的代价可能会非常昂贵!

因此一个好的提高程序相应速度的策略就是减少此类操作的发生。为了减少次数,应该合并多次对DOM和样式和的修改,然后一次性处理掉。

考虑下面的例子:

var el = document.getElementById('mydiv')
el.style.borderLeft = '1px'
el.style.borderRight = '2px'
el.style.padding = '5px'

上面的例子中,元素的三个样式被改变,每一个都会影响元素的几何结构。在糟糕的情况下,可能会导致浏览器发生三次重排。

可以优化成下面的方式:

var el = document.getElementById('mydiv')
el.style.cssText = 'border-left: 1px; border-right: 2px; padding: 5px'

更推荐改变CSS的class名称的方式来调整元素的样式

...继续更新中

相关文章

  • 前端收藏文章

    优化CSS重排重绘与浏览器性能

  • 浏览器重排(回流)重绘以及优化方案

    一、什么是重排和重绘 要说清重排(reflow)和重绘(repaint),首先要理解排列和绘制,浏览器渲染页面时,...

  • web性能优化 - 重排与重绘

    重排与重绘 重排 [重构/回流/reflow]:当DOM变化影响了节点的几何属性,浏览器需要重新计算节点的几何属性...

  • 浏览器的重排-重绘

    重排(重构/回流/reflow) 重绘(repaint/redraw) 一、浏览器运行机制 浏览器加载完ht...

  • 高性能Javascript读书笔记--重排与重绘

    重排与重绘 当浏览器下载完页面中的所有组件(HTML标签、Javascript、CSS、图片)之后就会解析并生成两...

  • 浏览器工作原理

    浏览器重绘(repaint)重排(reflow)与优化[浏览器机制]https://juejin.im/post/...

  • 浏览器页面的重绘和重排

    对于页面,我们经常有CSS对网页进行呈现样式效果,这就涉及到了页面的重绘和重排 重绘(repaints)与重排(r...

  • 浏览器的重绘与重排

    什么是浏览器的重排与重绘? 一个页面由两部分组成:DOM:描述该页面的结构render:描述DOM节点(nodes...

  • 浏览器的重绘与重排

    最近在读《高性能JavaScript》这本书,有些知识点在此记录一下 重排与重绘的概念 当DOM的变化影响了元素的...

  • 浏览器的重排与重绘

    浏览器下载完页面中的所有组件——HTML标记、JavaScript、CSS、图片之后会解析生成两个内部数据结构——...

网友评论

      本文标题:浏览器的重绘与重排

      本文链接:https://www.haomeiwen.com/subject/inpupftx.html