这个职位是最有益的理解createDocumentFragment()代替的createElement() Should I use document.createDocumentFragment or document.createElement使用createDocumentFragment()将Ajax附加到元素;而不是创建元素
我了解,使用片段性能原因,将有助于对大数据集,所以我想CONVER我的功能。
这就是我现在使用,它可以作为期望=>获取从阿贾克斯一个php文件的内容,然后追加内新div.feedBox
(r
作为XMLHTTP在现有div#wrapper
的顶部此内容/活动对象)
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:NO jquery please。我知道它很好,我在其他项目上广泛使用它,但我希望它尽可能小/轻/高效。
什么都没有使用这个if statemnt。就像我说过的每一件事情都与代码一样好,除了我的ajax内容没有封装在div.feedBox中。 (喜欢它与以前的版本) –
检查已编辑的文章 –
看看小提琴http://jsfiddle.net/sushanth009/9vxG8/ –