這個職位是最有益的理解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/ –