documentFragment是一个保存多个element的容器对象(保存在内存)当更新其中的一个或者多个element时,页面不会更新。只有当documentFragment容器中保存的所有element更新后再将其插入到页面中才能更新页面。

documentFragment用来批量更新

列如将ul里面的li取出放到documentFragment,更新完毕后再将其插入到ul,一共有以下四步骤:

  1. 创建documentFragment对象fragment
  2. 取出ul中的所有子节点并保存到fragment
  3. 更新fragment中的所有节点(li的内容)
  4. 将fragment插入到ul
//初始显示test1
<div id="test">
<li>test1</li>
<li>test1</li>
<li>test1</li>
</div>
const ul = document.getElementById('test')
// 创建fragment对象
const fragment = document.createDocumentFragment()
// 取出ul中的所有子节点并保存到fragment
let child;
while(child=ul.firstChild) {
fragment.appendChild(child)
}
//更新fragment中的所有节点(li的内容)
Array.prototype.slice.call(fragment.childNodes).forEach(node => {
if (node.nodeType===1) {//取得元素节点
node.textContent = 'test2' //重新赋值为test2
}
})
// 将fragment插入到ul
ul.appendChild(fragment)

在fragment插入到ul之前页面不会更新,documentFragment用来批量更新元素

最新文章

  1. js get browser vertion (js获取浏览器信息版本)
  2. C#创建目录,文件名过滤特殊字符串,非法字符
  3. TCP/IP协议与UDP协议的区别
  4. 数位DP HDU2089
  5. 『片段』OracleHelper (支持 多条SQL语句)
  6. iphone 使用技巧
  7. oracle 11g 64位安装sqldeveloper打开不了
  8. jQuery回到顶部
  9. 内存操作相关内核 API 的使用
  10. A Game with Colored Balls
  11. UVa 990 - Diving for Gold
  12. mysqli数据库连接
  13. 戏说java与web
  14. day 67 orm初识 {code_first/db_first}
  15. Python之路-文件操作(py3)
  16. C# SpinLock实现
  17. trunc()用法和add_months()
  18. day2(基础数据类型)
  19. php5.3升级脚本
  20. Golang 使用FreeType-go进行字体

热门文章

  1. UML-类图-如何表示方法?
  2. JavaScript学习笔记 - 入门篇(1)- 准备
  3. Django框架的安装与使用
  4. HTML5中的data-*属性
  5. python 并发执行
  6. nips2014下载
  7. 图遍历算法的应用(包括输出长度为l的路径最短最长路径)
  8. 基于Dijsktra算法的最短路径求解
  9. java threadlocal 背景 本质
  10. 再来看看Java的新特性——其他新特性