美文网首页
为什么操作DOM会更耗资源

为什么操作DOM会更耗资源

作者: null_b3bc | 来源:发表于2018-04-25 11:03 被阅读0次

DOM是js的一个对象,严格的说并不是操作这个对象耗费资源,而是操作这个对象之后会触发浏览器的一些操作(layout(reflow)和paint)耗费资源;

首先我们要说到浏览器是如何呈现一个页面的

1、解析HTML,并生成一颗DOM树

2、解析CSS样式,结合DOM树生成一颗render树

3、对render树的各个节点计算布局信息,比如位置和尺寸

4、根据render树,并利用浏览器的UI层进行绘制

paint是一个耗费资源的事情,但是layout更是一个耗费资源的事,我们要优化前端,那么就得减少layout,我们接下来看一看什么操作会触发layout

1、调整窗口大小

2、改变字体

3、增加、删除样式表

4、添加、删除DOM元素

5、激活伪类

6、修改DOM元素样式,且样式涉及到尺寸的改变

我们来直观感受一下操作DOM有多耗费资源

ab var div = document.getElementById('parent');

        function a(){

            console.time('a')

            for(var i=0;i<5000;i++){

                div.innerHTML +='a';

            }

            console.timeEnd('a');

        }

        function b(){

            console.time('b')

            var re = '';

            for(var i=0;i<5000;i++){

                re+='b';

            }

            div.innerHTML = re;

            console.timeEnd('b');

        }

两个按钮,均是5000次循环,操作DOM在循环内部和外部时间对比

相关文章

  • 为什么操作DOM会更耗资源

    DOM是js的一个对象,严格的说并不是操作这个对象耗费资源,而是操作这个对象之后会触发浏览器的一些操作(layou...

  • Vue解决了哪些问题

    虚拟 dom:dom 操作时非常耗性能的,不再使用原生的 dom 操作节点,极大的解放 dom 操作,但具体操作的...

  • 【前端性能优化】之代码级优化

    1. Javascript DOM DOM操作应该是脚本中最耗性能的一类操作,例如增加、修改、删除 DOM元素或者...

  • JS函数防抖节流

    在前端开发中有一部分用户行为会频繁出发事件执行。而对于DOM操作、资源加载等耗性能的处理,很可能导致界面卡顿,甚至...

  • 在向dom插入多个元素时,利用文档碎片,提高性能

    javascript操作dom是一个很耗性能的过程,在某些情况下,不得不进行dom循环操作,我们每次对dom的操作...

  • 高性能Java script(DOM操作)

    三、DOM操作的优化 a.Ecama 和 DOM 是两座岛屿 在浏览器中,实现DOM操作是很耗性能的事情 应该做的...

  • 虚拟DOM/DOM DIFF理解

    因为React、Vue框架的出现,页面渲染采用了更高效的虚拟DOM。 一个dom元素中有许多属性,操作dom是很耗...

  • Vue笔记1

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

  • angular的Dom操作

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

  • 浏览器的重绘与回流

    DOM操作为什么会影响性能 在浏览器中,DOM 的实现和 ECMAScript 的实现是分离的。比如 在 IE 中...

网友评论

      本文标题:为什么操作DOM会更耗资源

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