--- title: DocumentFragment slug: Web/API/DocumentFragment tags: - API - DOM - DocumentFragment - Documents - Interface - Reference - Web Components translation_of: Web/API/DocumentFragment ---
Das DocumentFragment
interface stellt ein einfaches Objekt dar, welches ohne Bezug zu einem parent erstellt und verwendet werden kann. Es kann somit verstanden werden als eine leichtgewichtige Variante des {{domxref("Document")}}, die einen Ausschnitt einer Dokumentstruktur aus Element-Knoten abbildet. Der zentrale Unterschied dabei ist jedoch, dass das Fragment nicht Bestandteil der aktiven Seitenstruktur und des DOM-Baums ist. Dadurch haben Änderungen an dem Fragment keine Auswirkungen auf das aktive Dokument, wodurch unerwünschte Seiteneffekte von DOM-Änderungen wie {{Glossary("reflow")}} oder Performanceeinbußen verhindert werden können.
Üblicherweise wird das DocumentFragment
dazu verwendet, um einen neuen DOM-Teilbaum für eine Seite zu erzeugen und darin beliebig Fragmente und Knoten vorbereiten zu können, diese über das {{domxref("Node")}} interface mittels Methoden wie {{domxref("Node.appendChild", "appendChild()")}} und {{domxref("Node.insertBefore", "insertBefore()")}} hinzuzufügen. Wenn das Frament schließlich in die aktive Dokumentstruktur und deren DOM eingefügt wird, bleibt ein leeres DocumentFragment
zurück. Da alle Knoten auf einmal in das aktive Dokument hinzugefügt werden, wird lediglich ein einzelner reflow und render Prozess ausgelöst, anstelle von potentiell unzähligen für jeden einzelnen, separat eingefügten Knoten.
Das interface wird ebenso bei Web components verwendet: {{HTMLElement("template")}}-Elemente beinhalten ein DocumentFragment
in ihrer {{domxref("HTMLTemplateElement.content")}} Eigenschaft.
Ein leeres DocumentFragment
kann jederzeit erzeugt werden über {{domxref("document.createDocumentFragment()")}} oder über den constructor.
{{InheritanceDiagram}}
Das interface hat keine spezifischen Eigenschaften, erhält jedoch über Vererbung die des übergeordneten {{domxref("Node")}} und implementiert darüber hinaus jene des {{domxref("ParentNode")}} interfaces zusätzlich.
DocumentFragment
angehören.DocumentFragment
ist. null
falls es keines gibt.DocumentFragment
ist. null
falls es keines gibt.unsigned long
die Anzahl der Kindelemente des DocumentFragment
bereit.DocumentFragment
Objekt.Das interface erbt die Methoden von {{domxref("Node")}}, und implementiert darüber hinaus jene des {{domxref("ParentNode")}} interfaces zusätzlich.
DocumentFragment
.DocumentFragment
.DocumentFragment
, der in der Reihenfolge im document als erstes zu dem Selektor passt.DocumentFragment
, die zu dem angegebenen Selektor passen.DocumentFragment
, dem in der document Reihenfolge zuerst die angegebene ID zugeordnet ist.Spezifikation | Status | Anmerkungen |
---|---|---|
{{SpecName('DOM WHATWG', '#interface-documentfragment', 'DocumentFragment')}} | {{Spec2('DOM WHATWG')}} | Added the constructor and the implementation of {{domxref("ParentNode")}}. |
{{SpecName('Selectors API Level 2', '#the-apis', 'DocumentFragment')}} | {{Spec2('Selectors API Level 2')}} | Added the find() and findAll() methods. |
{{SpecName('Selectors API Level 1', '#the-apis', 'DocumentFragment')}} | {{Spec2('Selectors API Level 1')}} | Added the querySelector() and querySelectorAll() methods. |
{{SpecName('DOM3 Core', 'core.html#ID-B63ED1A3', 'DocumentFragment')}} | {{Spec2('DOM3 Core')}} | No change from {{SpecName('DOM2 Core')}} |
{{SpecName('DOM2 Core', 'core.html#ID-B63ED1A3', 'DocumentFragment')}} | {{Spec2('DOM2 Core')}} | No change from {{SpecName('DOM1')}} |
{{SpecName('DOM1', 'level-one-core.html#ID-B63ED1A3', 'DocumentFragment')}} | {{Spec2('DOM1')}} | Initial definition |
{{CompatibilityTable}}
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 1.0 | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("1.0")}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
querySelector() and querySelectorAll() |
1.0 | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("1.9.1")}} | 8.0 | 10.0 | 3.2 (525.3) |
findAll() and find() {{experimental_inline}} |
{{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
DocumentFragment() constructor {{experimental_inline}} |
28.0 | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("24.0")}} | {{CompatNo}} | 15.0 | {{CompatNo}} |
ParentNode properties {{experimental_inline}} |
28.0 | {{CompatNo}} | {{CompatGeckoDesktop("25.0")}} | {{CompatNo}} | 15.0 | {{CompatNo}} |
ParentNode methods {{experimental_inline}} |
{{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile("1.0")}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
querySelector() and querySelectorAll() |
2.1 | {{CompatVersionUnknown}} | {{CompatGeckoMobile("1.0")}} | 8.0 | 10.0 | 3.2 (525.3) |
findAll() and find() {{experimental_inline}} |
{{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
DocumentFragment() constructor {{experimental_inline}} |
{{CompatUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile("24.0")}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatUnknown}} |
ParentNode properties {{experimental_inline}} |
{{CompatVersionUnknown}} | {{CompatNo}} | {{CompatGeckoMobile("25.0")}} | {{CompatNo}} | 5.0 | {{CompatNo}} |
ParentNode methods {{experimental_inline}} |
{{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |