Tôi đã xem xét việc sử dụng documentFragments trong ứng dụng Backbone.js và tự hỏi tại sao tôi thấy các ví dụ trong đó "cloneNode" được sử dụng khi chắp thêm documentFragment vào phần tử DOM mẹ.Tại sao cloneNode cần được sử dụng khi thêm một tài liệuFragment?
Có thể xem ví dụ here. Nếu bạn nhìn xuống phần DocumentFragment bạn sẽ thấy điều này:
oFrag = document.createDocumentFragment();
for (var i = 0, imax = aElms.length; i < imax; i++) {
oFrag.appendChild(aElms[i]);
}
o.innerHTML = '';
o.appendChild(oFrag.cloneNode(true));
Tại sao "oFrag" được sao chép thay vì chỉ thêm nó? Một blog post không sử dụng "cloneNode" (làm so sánh).
+1, rất thú vị thực sự. Đoán duy nhất của tôi (và khá hoang dã) là việc sử dụng 'cloneNode' cho phép chúng ta kiểm soát tốt hơn phạm vi' oFrag'. – raina77ow
Tôi không nghĩ rằng điều này xứng đáng được giả mạo thành một câu trả lời đầy đủ, nhưng dù sao ... Đơn giản bằng cách tìm kiếm 'documentFragment cloneNode' Tôi đã tìm thấy [bài đăng này] (http://ejohn.org/blog/dom- documentfragments /) của John Resig.) Trong chủ đề của bài viết này, một loạt các nút sẽ được chèn vào DOM _several_ lần, do đó nhân bản documentFragment thực sự là một lựa chọn tốt hơn. – raina77ow