减少回流(REFLOWS)

  当浏览器重新渲染文档中的元素时需要 重新计算它们的位置和几何形状,我们称之为回流。回流会阻塞用户在浏览器中的操作,因此理解提升回流时间是非常有帮助的。

回流时间图表

  你应该批量地触发回流或重绘,但是要节制地使用这些方法。尽量不处理DOM也很重要。可以使用DocumentFragment,一个轻量级的文档对象。你可以把它作为一种方法来提取文档树的一部分,或创建一个新的文档“片段”。与其不断地添加DOM节点,不如使用文档片段后只执行一次DOM插入操作,以避免过多的回流。

  例如,我们写一个函数给一个元素添加20个div。如果只是简单地每次append一个div到元素中,这会触发20次回流。

function addDivs(element) {var div;for (var i = 0; i < 20; i ++) {div = document.createElement('div');div.innerHTML = 'Heya!';element.appendChild(div);}
}

  要解决这个问题,可以使用DocumentFragment来代替,我们可以每次添加一个新的div到里面。完成后将DocumentFragment添加到DOM中只会触发一次回流。

function addDivs(element) {var div;// Creates a new empty DocumentFragment.var fragment = document.createDocumentFragment();for (var i = 0; i < 20; i ++) {div = document.createElement('a');div.innerHTML = 'Heya!';fragment.appendChild(div);}element.appendChild(fragment);
}

转载于:https://www.cnblogs.com/zys8119/p/5600302.html

javascript 减少回流相关推荐

  1. 【JavaScript】回流(reflow)与重绘(repaint)

    重绘与回流 首先要了解页面是如何呈现的: HTML文档加载后生成DOM树(包括display:none;元素): 在DOM树的基础上配合css样式结构体生成render树(不包含display:non ...

  2. 页面性能优化,如何减少回流

    在开发时,不可避免的会遇到性能优化的问题,怎么做性能才会更好. 说到页面性能优化,我们就谈谈两个概念重绘和回流. 1.什么是重绘,什么是回流? 重绘: 当渲染树中的一些元素需要更新属性,而这些属性只是 ...

  3. 重绘和回流----降低回流减少性能影响

    回流和重绘 原创 2016年02月29日 14:49:02 标签: 布局 / dom 640 回流与重绘 1. 当render tree中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重 ...

  4. javascript --- [读书笔记] 回流与重绘 前端优化小结

    1. 浏览器渲染原理 请说出: 从用户在浏览器地址输入网址,到看整个页面,中间都发生了哪些事情? HTTP请求阶段 HTTP响应阶段 浏览器渲染阶段 1.1 可能用到的知识 1.1.1 进程 Proc ...

  5. CSS什么情况引起回流,回流(重排)与重绘 —— 什么是回流和重绘,造成的原因是什么,如何去减少?...

    浏览器的渲染原理 浏览器的渲染原理步骤: 解析文档(HTML.SVG.XHTML),生成 DOM Tree 解析CSS,生成 CSSOM Rule Tree 根据 DOM Tree 和 CSSOM R ...

  6. 【转】高性能WEB开发系列之重绘与回流

    原文转载:http://www.cnblogs.com/wangzhichao/archive/2011/05/16/2047633.html 页面呈现流程 在讨论页面重绘.回流之前.需要对页面的呈现 ...

  7. javascript的性能优化

    (1) 如何加载JS,JS文件应放在什么位置 外部JS的阻塞下载       所有浏览器在下载JS的时候,会阻止一切其他活动,比如其他资源的下载,内容的呈现等等.至到JS下载.解析.执行完毕后才开始继 ...

  8. JavaScript从初级往高级走系列————Virtual Dom

    原文博客地址:https://finget.github.io/2018/05/22/virtualDom/ 什么是虚拟DOM 用JS模拟DOM结构 DOM变化的对比,放在JS层来做(图灵完备语言) ...

  9. 页面重绘和回流以及优化

    在讨论页面重绘.回流之前.需要对页面的呈现流程有些了解,页面是怎么把html结合css等显示到浏览器上的,下面的流程图显示了浏览器对页面的呈现的处理流程.可能不同的浏览器略微会有些不同.但基本上都是类 ...

最新文章

  1. ASP.NET Core 2.2 基础知识(十四) WebAPI Action返回类型(未完待续)
  2. obj.toSource()
  3. 计算机科学计算第二版期末,计算机专业学生期末考试试卷2.pdf
  4. 如何开启/关闭SMTP路由调试
  5. 深入理解操作系统内核架构(送书)!
  6. Linux网络DNS分离解析
  7. highcharts默认选中最后一个点数据
  8. linux 进程通信 消息队列
  9. charles 华为手机使用_华为手机EMUI9.0健康使用手机怎么用?如何控制手机使用时长?...
  10. Remix:高分辨率目标检测,面向边缘设备、可调谐
  11. Going Deeper in Spiking Neural Networks: VGG and Residual Architectures
  12. Keras Datasets 国内下载镜像
  13. 在考纲词汇中利用复数规则找出的65个词
  14. ASP.NET MVC SportStore 购物网示例(6)
  15. bzoj千题计划315:bzoj3172: [Tjoi2013]单词(AC自动机)
  16. 阿特拉斯拧紧枪说明书_阿特拉斯使用说明书(全).pdf
  17. Java 初级软件工程师 认证考试试卷1
  18. 冯·诺依曼、哈佛、改进型哈佛体系结构解析
  19. Linux 磁盘管理
  20. 数据库原理与应用 构建音乐商店,实现复杂查询和批量操作及视图练习

热门文章

  1. 0x123C语言,and esp, 0xfffffff0
  2. android listview 开发,android开发之ListView实现
  3. c3p0 0.9.1.2 配套mysql_连接数据库,使用c3p0技术连接MySQL数据库
  4. android 日期国际化,Flutter 日期时间选择类控件及国际化
  5. java math.cos_Java Math类静态double cos(double d)示例
  6. picacg服务器维护,picacg的服务器地址是什么
  7. 儿童的身高标准对照表_2020“儿童身高标准”出炉,10岁身高140,你家娃达标吗...
  8. uva 11925——Generating Permutations
  9. 邮箱验证 ——ACM
  10. 113. 路径总和 II golang