【发布时间】:2012-11-04 14:53:06
【问题描述】:
这篇文章对理解 createDocumentFragment() 而不是 createElement() 最有帮助 Should I use document.createDocumentFragment or document.createElement
我了解到,出于性能原因,使用片段将有助于处理大数据集,所以我想转换我的函数。
这是我现在使用的,它可以按需要工作 => 使用 ajax 从 php 文件中获取内容,然后将此内容附加到现有 div#wrapperinsidetop /strong> 一个新的div.feedBox(r 是 XMLHTTP /ACTIVE OBJECT)
r.onreadystatechange=function(){
if(r.readyState==4 && r.status==200){
//Want to convert this to createDocumentFrangment --START
var n = document.createElement("div");
n.className = "feedBox";
n.innerHTML = r.responseText;
document.getElementById("wrapper").insertBefore(n, document.getElementById("wrapper").firstChild);
//Want to convert this to createDocumentFrangment --END
}
}
这是我尝试过的,但发生的情况是添加了内容但没有 div.feedBox
var n = document.createElement("div");
n.className = "feedBox";
n.innerHTML = r.responseText;
var f = document.createDocumentFragment();
while (n.firstChild) { f.appendChild(n.firstChild); }
document.getElementById("wrapper").insertBefore(f, document.getElementById("wrapper").firstChild);
我错过了什么?你能解释一下为什么以及如何让它发挥作用吗? 这真的是一种更有效的方法吗?
PS:请不要使用 jquery。我很了解它,我在其他项目中广泛使用它,但我希望它尽可能小/精简/高效。
【问题讨论】:
标签: javascript ajax dom createelement