美文网首页
documentFragment和template

documentFragment和template

作者: 袁韩 | 来源:发表于2016-02-24 21:04 被阅读635次

今天读vue源码,读到了fragment。抱着一直以来的好奇,打开了mdn文档,只能说“又学习到了”。

A DocumentFragment is a minimal document object that has no parent. It is used as a light-weight version of document to store well-formed or potentially non-well-formed fragments of XML.

documentFragment特性

documentFragement可以作为append类(Node.appendChild,Node.insertBefore)方法的参数,但是只有它的children被append,本身却不会。

与template的配合

template不会被渲染,但仍在dom结构树中,可以通过getElement类方法找到它。
HtmlTemplateElement.content是documentFragment

利用这一点可以甄别浏览器对template的支持

if ('content' in document.createElement('template') {
    console.log('HTML template element is supported');
} else {
    console.log('the HTML template element is not supported');
}

MDN中非常好的示例

  • 获取template元素
  • content中找到需要修改的text或value
  • 利用document.importNode或者content.cloneNode克隆得到实例
  • 将新实例append进某元素中

性能优化

john Resig大神发现了利用documentFragment优化append类操作的途径。

但是个人感觉documentFragment的设定就是为了这个,比如这篇文章中谈及documentFragment应有的使用姿势

stackflow中也有关于这个的讨论,有人专门对两者的差别做了测试,差别仍然很大。

相关文章

  • documentFragment和template

    今天读vue源码,读到了fragment。抱着一直以来的好奇,打开了mdn文档,只能说“又学习到了”。 A Doc...

  • 了解DocumentFragment 给我们带来的性能优化

    什么是DocumentFragment? DocumentFragment 节点不属于文档树,继承的 parent...

  • 大数据量处理

    一、渲染 1、DocumentFragment 使用DocumentFragment保存新增的节点最后一次性插入。...

  • 大数据量处理

    一、渲染 1. DocumentFragment 使用DocumentFragment保存新增的节点最后一次性插入...

  • DocumentFragment

    DocumentFragment 节点不属于文档树,继承的 parentNode 属性总是 null。 不过它有一...

  • DocumentFragment

    DocumentFragment,文档片段,不是真实 DOM 树的一部分,它的变化不会触发 DOM 树的重新渲染,...

  • DocumentFragment

    利用js创建DOM节点消耗时间最少的方法 1.利用document.crateElement()进行创建 2.利用...

  • DOM:API整理

    Node. document节点 Element对象 属性的操作 Text节点和DocumentFragment节...

  • Text节点和DocumentFragment节点

    Text节点的概念 Text节点代表Element节点和Attribute节点的文本内容。如果一个节点只包含一段文...

  • index template和dynamic template

    index template 和dynamic template都是可以根据规则来指定字段的类型,区别就在于前者指...

网友评论

      本文标题:documentFragment和template

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