DocumentFragment
La interfaz DocumentFragment
representa un objeto de documento mínimo que no tiene padre. Se utiliza como una versión ligera de Document
que almacena un segmento de una estructura de documento compuesta de nodos como un documento estándar. La gran diferencia se debe al hecho de que el fragmento de documento no forma parte de la estructura de árbol del documento activo. Los cambios realizados en el fragmento no afectan el documento (incluso en reflow) ni inciden en el rendimiento cuando se realizan cambios.
Constructor
DocumentFragment()
-
Crea y devuelve un nuevo objeto
DocumentFragment
.
Propiedades
Esta interfaz no tiene propiedades específicas*,* pero hereda las de su padre*, Node
,* e implementa los de la interfaz ParentNode
.
ParentNode.children
Read only Experimental-
Devuelve un
HTMLCollection
que contiene los objetos de tipoElement
que son elementos secundarios del objetoDocumentFragment
. ParentNode.firstElementChild
Read only Experimental-
Devuelve el
Element
que es el primer hijo del objetoDocumentFragment
, onull
si no hay ninguno. ParentNode.lastElementChild
Read only Experimental-
Devuelve el
Element
que es el último hijo del objetoDocumentFragment
, onull
si no hay ninguno. ParentNode.childElementCount
Read only Experimental-
Devuelve un
unsigned long
que indica cantidad de elementos secundarios que tiene el objetoDocumentFragment
.
Métodos
Esta interfaz hereda los métodos de su padre, Node
, e implementa los de la interfaz ParentNode
.
DocumentFragment.querySelector()
-
Devuelve el primer nodo
Element
dentro deDocumentFragment
, en el orden del documento, que coincide con los selectores especificados. DocumentFragment.querySelectorAll()
-
Devuelve un
NodeList
de todos los nodosElement
dentro deDocumentFragment
que coincide con los selectores especificados. DocumentFragment.getElementById()
-
Devuelve el primer nodo
Element
dentro deDocumentFragment
, en el orden del documento, que coincide con el ID especificado. funcionalmente equivale aDocument.getElementById()
.
Notas de uso
A common use for DocumentFragment
is to create one, assemble a DOM subtree within it, then append or insert the fragment into the DOM using Node
interface methods such as appendChild()
or insertBefore()
. Doing this moves the fragment's nodes into the DOM, leaving behind an empty DocumentFragment
. Because all of the nodes are inserted into the document at once, only one reflow and render is triggered instead of potentially one for each node inserted if they were inserted separately.
This interface is also of great use with Web components: <template>
elements contain a DocumentFragment
in their HTMLTemplateElement.content
property.
An empty DocumentFragment
can be created using the document.createDocumentFragment()
method or the constructor.
Example
HTML
<ul id="list"></ul>
JavaScript
var list = document.querySelector("#list");
var fruits = ["Apple", "Orange", "Banana", "Melon"];
var fragment = new DocumentFragment();
fruits.forEach(function (fruit) {
var li = document.createElement("li");
li.innerHTML = fruit;
fragment.appendChild(li);
});
list.appendChild(fragment);
Result
Especificaciones
Specification |
---|
DOM Standard # interface-documentfragment |
Compatibilidad con navegadores
BCD tables only load in the browser