美文网首页
为什么要减少DOM操作?

为什么要减少DOM操作?

作者: 清汤饺子 | 来源:发表于2018-11-22 16:11 被阅读0次

参考博客:http://www.admin10000.com/Common/Print.aspx?DocumentId=17719

什么是DOM

Document Object Model 文档对象模型
HTML是一种标记语言,HTML在DOM的模型标准中被视为对象,DOM只提供编程接口,却无法实际操作HTML里面的内容。在浏览器端,前端可以用js通过dom去操作HTML内容。

浏览器渲染过程

讨论DOM操作成本,首先了解该成本的来源,浏览器渲染。
1.解析HTML,构建DOM树
2.解析CSS,生成CSS规则树
3.合并DOM树和CSS规则,生成render树
4.布局render树,负责各元素尺寸、位置的计算
5.绘制render树,绘制页面像素信息
6.浏览器会将各层的信息发送给GPU,GPU将各层合成,显示在屏幕上

何时触发reflow和repaint

reflow(回流): 根据Render Tree布局(几何属性),意味着元素的内容、结构、位置或尺寸发生了变化,需要重新计算样式和渲染树;
repaint(重绘): 意味着元素发生的改变只影响了节点的一些样式(背景色,边框颜色,文字颜色等),只需要应用新样式绘制这个元素就可以了;
reflow回流的成本开销要高于repaint重绘,一个节点的回流往往回导致子节点以及同级节点的回流;

相关文章

  • 为什么要减少DOM操作?

    参考博客:http://www.admin10000.com/Common/Print.aspx?Document...

  • 【通俗易懂】虚拟DOM,如何更高效DIFF

    我们都知道,通过虚拟DOM,可以减少DOM操作,提高页面渲染性能 要实现虚拟DOM,主要三部曲: compile ...

  • 如何提高网页性能?

    1.用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能 2.少用全局变量 3.图...

  • 性能优化

    1、利用事件委托机制,减少对dom元素的操作

  • H5 webapp性能优化的几点建议

    减少或避免reflow 和 repaint(也就是减少dom操作和页面的css渲染)使用例如localstorag...

  • Vue笔记1

    问:为什么要用虚拟DOM? 答:虚拟DOM其实就是对象,操作对象的成本比操作DOM的成本更低,所以要用虚拟DOM ...

  • react的设计思想

    1.Virtual DOM(虚拟dom) 为什么要使用虚拟dom呢1.dom渲染在渲染中是最昂贵的,尽量减少dom...

  • angular的Dom操作

    大纲 1、angular的DOM操作2、为什么不能直接操作DOM?3、三种错误操作DOM的方式4、angular2...

  • refs

    使用refs的目的:减少操作原生dom,获取一些dom中的数据 eg: 想要获取input中的值 ...

  • 简单的diff算法

    一.减少dom操作的性能开销。 Math.min(oldLen,newLen); //取两段短的长度。 二.DOM...

网友评论

      本文标题:为什么要减少DOM操作?

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