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 >
< 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 >