我一直在尋找在Backbone.js應用程序中使用documentFragments,並想知道爲什麼我會在將documentFragment附加到父DOM元素時使用「cloneNode」。爲什麼在追加documentFragment時需要使用cloneNode?
可以看到一個例子here。如果您在DocumentFragment的部分往下看,你會看到:
oFrag = document.createDocumentFragment();
for (var i = 0, imax = aElms.length; i < imax; i++) {
oFrag.appendChild(aElms[i]);
}
o.innerHTML = '';
o.appendChild(oFrag.cloneNode(true));
爲什麼「oFrag」被克隆而不是隻追加了嗎?另一個blog post不使用「cloneNode」(作爲比較)。
+1,確實很有意思。我唯一的(也是非常瘋狂的)猜測是'cloneNode'的使用使我們可以更好地控制'oFrag'範圍。 – raina77ow
我認爲這不應該被僞造成一個完整的答案,但無論如何...只要通過尋找'documentFragment cloneNode'我已經找到[這篇文章](http://ejohn.org/blog/dom-文件片段/)John Resig。 )在這篇文章的主題中,應該將一堆節點插入到DOM_several_ times中,因此克隆documentFragment確實是一個更好的選擇。 – raina77ow