文档碎片

前提:js操作dom

每次对dom的元素的操作都会触发’重排’ (重新渲染页面,发生重绘、回流) ,严重影响到能耗,一般采取的做法是尽可能地减少操作dom元素,减少重绘

什么是文档碎片?

文档碎片独立于DOM树之外,存在于内存中,在创建之初为一个空白的文档片段,
document.createDocumentFragment() 一个容器,用于暂时存放创建的dom元素

文档碎片有什么用?

将需要添加的dom元素先添加到文档碎片中,再将文档碎片添加到需要插入的位置,大大的减少dom操作,提高性能
(IE和火狐比较明显)

比如需要往页面添加100个元素,

for(let i=100;i>0;i--){var ele = document.createElement('div');document.body.appendChild(ele);
}

文档碎片操作:

var docFra = document.createDocumentFragment();
for (var i =100;i>0;i--){var ele = document.createElement('div');docFra.appendChild(ele)
}
document.body.appendChild(docFra);

js-文档碎片的理解与使用相关推荐

  1. JS性能优化之文档碎片-document.createDocumentFragment

    讲这个方法之前,我们应该先了解下插入节点时浏览器会做什么.          在浏览器中,我们一旦把节点添加到document.body(或者其他节点)中,页面就会更新并反映出这个变化,对于少量的更新 ...

  2. web前端分享:性能优化之文档碎片处理

    有不少同学在前端开发面试的时候会被问到性能优化的相关问题,做好优化是一件非常重要的事情,今天小千就来给大家介绍一下文档碎片的处理方式. 性能优化之文档碎片 一般情况下,在操作DOM结构的时候,经常会说 ...

  3. 有关文档碎片(document fragment)的用法

    通常情况下修改.删除或者增加DOM元素.更新DOM会导致浏览器重新绘制屏幕,也会导 致reflow,这样会带来巨大的开销.我们通常解决这的办法尽量减少更新DOM,这也就意 味着将DOM的改变分批处理, ...

  4. Node.js 文档(目录)

    Node.js 文档 Node.js®是基于Chrome的V8 JavaScript引擎构建的JavaScript运行时. 提供以下几种类型的文档: API参考文档 ES6功能 指南 API参考文档 ...

  5. JQuery创建文档碎片

    (1)文档碎片可以提高DOM的操作性能.比如要插入一万个li标签,如果没有文档碎片,就必须插入一个然后页面渲染一次,插入完全部就要渲染一万次,太损耗性能.利用文档碎片,可以先把需要修改的全部放入文档碎 ...

  6. babylon.js文档笔记

    babylon 一 基本使用 引入 <script src="https://preview.babylonjs.com/babylon.js"></script ...

  7. 从文档流角度理解浏览器页面渲染引擎对元素定位的解析

    文档流:将窗体自上而下分成一行一行,并在每行中按从左至右的挨次排放元素,即为文档流. 我们在排列元素时,遵循"流式结构",即元素遵循从上向下,从左向右堆叠的规则,所以我们在排列元素 ...

  8. xpath用于HTML文档通过元素,理解HTML和XPath

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 我们已经知道HTML是文本标记语言,那么HTML和浏览器有什么样的关系呢? 当我们在浏览器中输入URL到浏览器显示出页面 ...

  9. simple-uploader.js 文档

    simple-uploader.js(也称 Uploader) 是一个上传库,支持多并发上传,文件夹.拖拽.可暂停继续.秒传.分块上传.出错自动重传.手工重传.进度.剩余时间.上传速度等特性:该上传库 ...

最新文章

  1. linux网络配置及IP绑定
  2. Android学习手记(2) Activity生命周期
  3. ASP.NET Core 借助 Helm 部署应用至 K8S
  4. linux安装mongo卸载mongo,CentOS7安装及卸载MongoDB.md
  5. 一台服务器多个oracle启动
  6. go interface 转 string_跟我一起学习go语言,map「string」interface「」代码示例
  7. Python vs Matlab—— find 与 np.where
  8. linux下运行class,在Linux下可用Wine安装和运行AIclass、希沃白板5
  9. 选中菜单 android,Android支持:设计NavigationView选中的菜单子项
  10. CNN中input,output的计算推导
  11. python基础之centos7源码安装python3
  12. ThinkPHP 5.1+全开源带后台商城小程序源码程序+带详细安装使用文档
  13. 几个好中的计算机类EI源刊
  14. 微信公众平台开发实战Java版之如何网页授权获取用户基本信息
  15. 编程题 java 密码锁_Java实现 蓝桥杯VIP 算法提高 密码锁
  16. 天嵌TQ_E9卡片电脑移植飞思卡尔yocto L4.1.15_1.0.0_ga 第五篇 LCD+触摸屏移植
  17. 高斯消去法解线性方程组的fortran程序实现
  18. <%@include%>和<jsp:include>区别浅谈
  19. 2022百度收录方法-顺鑫说seo
  20. 流浪大师善始者众善终者寡_流浪者–适合每个开发人员的瑞士军刀

热门文章

  1. 自己动手写推箱子游戏——休闲放松(源码)
  2. Cloudera Manager 5 Overview
  3. springboot高校二手服饰交易系统服装商城idea mysql
  4. [软件更新]迅雷(Thunder)5.9.2.927特别版(6月17日修正)
  5. 美联储激进加息的苦果来了!美债遇40年来最大抛售潮
  6. 个人笔记——图灵机实现函数f(x,y)=ax2+by
  7. 【渝粤题库】陕西师范大学164214 电子商务安全 作业(专升本)
  8. Luogu P2570 [ZJOI2010]贪吃的老鼠
  9. 在大型超市引进自助收银系统有什么好处有利的呢?
  10. 人脸识别与膜虹识别_超越人脸识别——虹膜识别vs静脉识别