• 前端性能之重排和重绘


     前端性能之重排和重绘 https://www.cnblogs.com/soyxiaobi/p/9963019.html

    1:什么是重排、重绘
    当DOM的变化引发了元素几何属性的变化,比如改变元素的宽高,元素的位置导致浏览器不得不重新计算元素的几何属性,并重新构建渲染树,这个过程为重排.完成重排后,要将重新构建的渲染树渲染到屏幕上,这个过程就是重绘.
    简单地说,重排负责元素的几何属性更新,重绘负责元素的样式更新。而且,重排必然带来重绘,但是重绘未必带来重排。比如,改变某个元素的背景(色、图),这个就不涉及元素的几何属性,所以只发生重绘。
    2:重排(回流)触发机制
    (1)添加或删除可见的DOM元素
    (2)元素位置改变
    (3)元素本身尺寸发生改变
    (4)内容改变
    (5)页面渲染器初始化
    (6)浏览器窗口大小发生改变
    3:如何进行性能优化
    (1)修改样式使用CSSText属性 eg: var el = document.querySelector('.el'); el.style.cssText = 'border-left: 1px; border-right: 2px; padding: 5px';
    (2)切换class类名 也可以减少重排
    (3)批量修改DOM
        1)可以先隐藏元素(display:none),进行修改后,然后再显示该元素
        2)使用文档片段document.createDocumentFragment()创建,再进行添加
        3)  将原始元素拷贝到cloneNode()一个独立的节点中,操作该节点然后覆盖原始元素
    let old = document.querySelector('#mylist');
    let clone = old.cloneNode(true);
    appendNode(clone, data);
    old.parentNode.replaceChild(clone, old);
    

      

  • 相关阅读:
    phrase(短语)
    AS3版MP3播放器核心
    内存回收机制
    检测FPS和内存占用
    NetConnection读取asp.net
    基于flash AS3.0 的BASE64编码与解码类
    as3访问WebService,SOAP协议
    六种角度看OCA与OCP、OCM区别
    ORACLE报表触发器
    ORACLE EBS常用表
  • 原文地址:https://www.cnblogs.com/zhenjianyu/p/12965303.html
Copyright © 2020-2023  润新知