美文网首页
【DOM】DocumentFragment类型

【DOM】DocumentFragment类型

作者: Wonder233 | 来源:发表于2017-11-21 19:58 被阅读0次

    1、所有的节点类型中,只有documentFragment在文档中没有对应的标记。
    2、DOM规定文档片段(document fragment)是一种“轻量级”的文档,可以包含和控制节点,但不会像完整的文档那样占用额外的资源。

    DocumentFragment节点特征

    • nodeType的值是11;
    • nodeName的值为“#document-fragment”;
    • nodeValue的值为null;
    • parentNode的值为null;
    • 子节点可以是Element、ProcessingInstruction、Comment、Text、CDATASection或EntityReference。

    文档片段不能直接添加到文档中,但可以将它作为一个“仓库”来使用,即可以在里面保存将来可能会添加到文档中的节点。

    创建DocumentFragment节点:createDocumentFragment

    文档片段继承了Node的所有方法,通常用于执行那些针对文档的DOM操作。

    1、若将文档中的节点添加到文档片段中,就会从文档树中移除该节点,也不会从浏览器中再看到该节点。
    2、添加到文档片段中的新节点同样也不属于文档树。
    3、可以用appendChild()或insertBefore()将文档片段中内容添加到文档中。
    4、文档片段本身永远不会成为文档树的一部分。

    var fragment = document.createDocumentFragment();
    var ul = document.getElementById("myList");
    var li = null;
    
    for(var i=0;i<3;i++){
        li = document.createElement("li");
        li.appendChild(document.createTextNode("Item "+(i+1)));
        fragment.appendChild(li);
    }
    
    ul.appendChild(fragment);
    

    如果逐个地添加列表项,会导致浏览器反复渲染(呈现)新信息。用文档片段来保存创建的列表项,然后再一次性将他们添加到文档中可以避免这个问题。

    相关文章

      网友评论

          本文标题:【DOM】DocumentFragment类型

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