DocumentFragment
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
Giao diện DocumentFragment đại diện cho một đối tượng tài liệu tối thiểu không có phần tử cha.
Nó được sử dụng như một phiên bản nhẹ của Document để lưu trữ một phân đoạn cấu trúc tài liệu bao gồm các nút giống như một tài liệu chuẩn. Sự khác biệt chính là do phân đoạn tài liệu không phải là một phần của cấu trúc cây tài liệu hoạt động. Các thay đổi được thực hiện đối với phân đoạn không ảnh hưởng đến tài liệu.
Constructor
DocumentFragment()-
Tạo và trả về một đối tượng
DocumentFragmentmới.
Thuộc tính thực thể
Giao diện này không có thuộc tính cụ thể nào, nhưng kế thừa những thuộc tính của phần tử cha, Node.
DocumentFragment.childElementCountRead only-
Trả về số lượng
phần tửcon màDocumentFragmentcó. DocumentFragment.childrenRead only-
Trả về một
HTMLCollectiontrực tiếp chứa tất cả các đối tượng kiểuElementlà con của đối tượngDocumentFragment. DocumentFragment.firstElementChildRead only-
Trả về
Elementlà phần tử con đầu tiên của đối tượngDocumentFragment, hoặcnullnếu không có phần tử nào. DocumentFragment.lastElementChildRead only-
Trả về
Elementlà phần tử con cuối cùng của đối tượngDocumentFragment, hoặcnullnếu không có phần tử nào.
Phương thức thực thể
Giao diện này kế thừa các phương thức của phần tử cha, Node.
DocumentFragment.append()-
Chèn một tập hợp các đối tượng
Nodehoặc chuỗi sau phần tử con cuối cùng của phân đoạn tài liệu. DocumentFragment.prepend()-
Chèn một tập hợp các đối tượng
Nodehoặc chuỗi trước phần tử con đầu tiên của phân đoạn tài liệu. DocumentFragment.querySelector()-
Trả về nút
Elementđầu tiên trongDocumentFragment, theo thứ tự tài liệu, khớp với các bộ chọn đã chỉ định. DocumentFragment.querySelectorAll()-
Trả về một
NodeListcủa tất cả các nútElementtrongDocumentFragmentkhớp với các bộ chọn đã chỉ định. DocumentFragment.moveBefore()-
Di chuyển một
Nodeđã cho vào trongDocumentFragmentgọi phương thức như một phần tử con trực tiếp, trước một nút tham chiếu đã cho, mà không cần xóa rồi chèn lại nút. DocumentFragment.replaceChildren()-
Thay thế các phần tử con hiện có của
DocumentFragmentbằng một tập hợp phần tử con mới đã chỉ định. DocumentFragment.getElementById()-
Trả về nút
Elementđầu tiên trongDocumentFragment, theo thứ tự tài liệu, khớp với ID đã chỉ định. Hoạt động tương tự nhưDocument.getElementById().
Ghi chú sử dụng
Cách sử dụng phổ biến cho DocumentFragment là tạo một phân đoạn, lắp ráp một cây con DOM bên trong nó, sau đó nối hoặc chèn phân đoạn vào DOM bằng các phương thức giao diện Node như appendChild(), append(), hoặc insertBefore(). Việc này sẽ di chuyển các nút của phân đoạn vào DOM, để lại một DocumentFragment rỗng.
Giao diện này cũng rất hữu ích với các Web component: các phần tử <template> chứa một DocumentFragment trong thuộc tính HTMLTemplateElement.content của chúng.
Một DocumentFragment rỗng có thể được tạo bằng phương thức document.createDocumentFragment() hoặc constructor.
Hiệu suất
Lợi ích về hiệu suất của DocumentFragment thường bị phóng đại quá mức. Trên thực tế, trong một số công cụ, việc sử dụng DocumentFragment chậm hơn so với việc nối vào tài liệu trong một vòng lặp như đã minh họa trong phép đo hiệu suất này. Tuy nhiên, sự khác biệt giữa các ví dụ này nhỏ đến mức tốt hơn nên tối ưu hóa cho khả năng đọc hơn là hiệu suất.
Ví dụ
>HTML
<ul></ul>
JavaScript
const ul = document.querySelector("ul");
const fruits = ["Apple", "Orange", "Banana", "Melon"];
const fragment = new DocumentFragment();
for (const fruit of fruits) {
const li = document.createElement("li");
li.textContent = fruit;
fragment.append(li);
}
ul.append(fragment);
Kết quả
Đặc điểm kỹ thuật
| Specification |
|---|
| DOM> # interface-documentfragment> |