创建创建文档碎片对象[DOMDocumentFragment]改善Javascript代码性能

 
 DOMDocumentFragment是一个父对象为document的对象
 支持以下DOM2方法:
 appendChild, cloneNode, hasAttributes, hasChildNodes, insertBefore, normalize, removeChild, replaceChild.
 支持以下DOM2属性:
 attributes, childNodes, firstChild, lastChild, localName, namespaceURI, nextSibling, nodeName, nodeType, nodeValue, ownerDocument, parentNode, prefix, previousSibling, textContent.

说明:http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-B63ED1A3

测试代码:

< html >
< head >
< script >
    
var obj;
    
function test1() {
        
var doc = document.createDocumentFragment();
        
var tm1 = new Date();
        
var tm2;
        
for(var i=0;i<10000;i++{
            obj 
= document.createElement("p");
            obj.appendChild(document.createTextNode(
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"+i));
            doc.appendChild(obj);
        }

        document.body.appendChild(doc);
        tm2 
= new Date();
        alert(tm2
-tm1);
    }

    
    
function test2() {
        
var tm1 = new Date();
        
var tm2;
        
for(var i=0;i<10000;i++{
            obj 
= document.createElement("p");
            obj.appendChild(document.createTextNode(
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"+i));
            document.body.appendChild(obj);
        }

        tm2 
= new Date();
        alert(tm2
-tm1);
    }

    
    
function test() {
        
//              i = 10000
        test1();//          1422
        test2();//          1500
    }

</ script >
</ head >
< body  onload ="test()" >
</ body >
</ html >
 只做当插入10000个标记的测试,发现提代的不是很理想,才1秒左右。不知道有没有理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值