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 :
나는 조각을 캐싱 대 documentFragments를 재현과 복제의 성능 차이를 설명하기 위해 jsperf 조각을 만들었습니다. 내 유일한 (그리고 아주 야생) 추측은'cloneNode' 사용법이'oFrag' 스코프를 더 잘 제어 할 수 있다는 것입니다. – raina77ow나는 이것이 완전한 대답으로 위조 될 가치가 있다고 생각하지 않는다. 그러나 어쨌든 ... 단순히 'documentFragment cloneNode'를 찾음으로써 [이 게시물] (http://ejohn.org/blog/dom- documentfragments /)의 John Resig.)이 게시물의 주제에서 많은 수의 노드가 DOM에 여러 번 삽입되어야하므로 documentFragment를 복제하는 것이 실제로 더 나은 선택입니다. – raina77ow