Document Object Model

DOM Document Object Model

Glossar

Das Document Object Model (kurz DOM) ist die programmatische Schnittstelle, über die ein Browser die Struktur und den Inhalt eines HTML- oder XML-Dokuments als Baumstruktur im Arbeitsspeicher abbildet. Jedes HTML-Element wird dabei zu einem Knoten (Node) in diesem Baum. Das DOM ist die entscheidende Brücke zwischen dem statischen HTML-Quelltext und JavaScript: Erst über das DOM können Skripte auf Elemente zugreifen, sie verändern, neue hinzufügen oder auf Nutzerinteraktionen reagieren.

Wie entsteht das DOM?

Sobald ein Browser HTML empfängt, parst er es Zeile für Zeile und baut dabei Knoten für Knoten den DOM-Baum auf – parallel dazu entsteht aus dem CSS das CSSOM (CSS Object Model). Erst die Kombination aus beiden ergibt den sogenannten Render-Baum, aus dem der Browser schließlich das sichtbare Layout berechnet und die Pixel zeichnet. Das DOM ist also kein statisches Abbild des ursprünglichen Quelltexts, sondern ein lebendiger Zustand, der sich mit jeder JavaScript-Änderung weiterentwickelt.

Aufbau eines DOM-Baums (Beispiel)

Aus diesem einfachen HTML-Ausschnitt

<body>
  <h1>Willkommen</h1>
  <p>Ein kurzer Text.</p>
</body>

baut der Browser folgende Baumstruktur auf:

body
├── h1 → "Willkommen"
└── p → "Ein kurzer Text."

body ist dabei der Elternknoten (Parent Node) von h1 und p, die wiederum Geschwisterknoten (Sibling Nodes) sind. Über genau diese Eltern-Kind-Beziehungen navigieren JavaScript und CSS durchs Dokument.

Die wichtigsten DOM-Methoden im Überblick

MethodeZweckBeispiel
document.querySelector()Erstes passendes Element per CSS-Selektor findendocument.querySelector('.card')
document.getElementById()Element per ID findendocument.getElementById('header')
element.addEventListener()Auf Ereignisse reagieren (Klick, Eingabe, …)btn.addEventListener('click', fn)
document.createElement()Neuen Knoten erzeugendocument.createElement('div')
element.appendChild()Knoten als Kind einfügenparent.appendChild(neuesElement)
element.classListCSS-Klassen lesen, setzen, umschaltenel.classList.toggle('active')

DOM-Manipulation mit JavaScript

Über diese und weitere DOM-APIs liest JavaScript nicht nur Inhalte aus, sondern verändert sie auch live: Texte aktualisieren, Klassen umschalten, ganze Elemente ein- und ausblenden oder neu erzeugen – ganz ohne die Seite neu zu laden. Genau diese Fähigkeit macht moderne, interaktive Webanwendungen erst möglich, vom einfachen Akkordeon bis zur komplexen Single-Page-Application.

Virtual DOM vs. Signals: der Trend 2026

Direkte DOM-Manipulationen sind vergleichsweise teuer. Frameworks wie React lösen das klassisch über ein Virtual DOM: Änderungen werden zunächst in einer leichtgewichtigen JavaScript-Repräsentation berechnet, mit dem vorherigen Zustand verglichen (Diffing) und erst danach gebündelt ins echte DOM übertragen.

Der Trend der letzten Jahre geht allerdings in eine andere Richtung: Signals (feingranulare Reaktivität). Statt bei jeder Zustandsänderung eine ganze Komponente neu zu berechnen und zu vergleichen, verknüpfen Frameworks wie Solid, Vue 3, Svelte 5 (über „Runes") und Angular Zustand direkt mit den betroffenen DOM-Knoten – ganz ohne Zwischenschritt über ein virtuelles Abbild. Das reduziert unnötige Berechnungen und ist in Benchmarks spürbar schneller. React bleibt trotzdem der verbreitetste Standard mit dem größten Ökosystem – die Wahl des richtigen Ansatzes hängt immer vom konkreten Projekt ab, ein Thema, das wir im Rahmen unserer Custom-Software-Entwicklung individuell einschätzen.

Shadow DOM: ein verwandtes, aber anderes Konzept

Leicht zu verwechseln, aber ein eigenständiges Konzept: Das Shadow DOM kapselt einen DOM-Teilbaum inklusive eigener Styles von der restlichen Seite ab – Grundlage der Web-Components-Spezifikation. So bringt etwa das native <video>-Element seine Steuerelemente über Shadow DOM mit, ohne dass Seiten-CSS sie versehentlich überschreibt. Auf unserer eigenen Website setzen wir bewusst auf native Custom Elements ohne Shadow DOM, damit globale CSS-Klassen und Design-Tokens weiterhin einheitlich greifen – Kapselung ist nicht immer das Ziel.

DOM und Performance: Reflow und Repaint

Ändert JavaScript eine Eigenschaft, die Layout oder Größe eines Elements betrifft, muss der Browser einen Reflow durchführen – die Positionen betroffener und oft auch benachbarter Elemente werden neu berechnet, gefolgt von einem Repaint. Werden viele solcher Änderungen einzeln statt gebündelt vorgenommen, summieren sich diese Kosten spürbar auf. Bewährte Gegenmaßnahmen sind das Bündeln von DOM-Änderungen, das Vermeiden wiederholter Lese-Schreib-Wechsel im selben Frame sowie CSS-Eigenschaften, die keinen Reflow auslösen (z. B. transform statt top/left).

DOM und SEO

Das DOM ist auch für Suchmaschinenoptimierung relevant, denn moderne Suchmaschinen crawlen nicht mehr nur den rohen HTML-Quelltext, sondern rendern Seiten – der Webcrawler von Google etwa nutzt dafür eine aktuelle Chromium-Engine, ähnlich wie ein echter Browser. Inhalte, die erst nach dem initialen Laden per JavaScript ins DOM eingefügt werden, werden zwar in der Regel erfasst, aber mit zeitlichem Versatz und höherem Rechenaufwand für die Suchmaschine. Zudem wirken sich nachträgliche DOM-Änderungen, die Layout verschieben, direkt auf den Cumulative Layout Shift (CLS) aus – einen der drei zentralen Core-Web-Vitals-Werte und damit einen echten Rankingfaktor. Wer clientseitig stark gerenderte Inhalte einsetzt, sollte deshalb server-seitiges Rendering oder statische Generierung in Betracht ziehen und die Auswirkungen im Rahmen unserer SEO-Leistungen prüfen lassen.

Fazit

Das DOM ist die unsichtbare Brücke, über die jede interaktive Website funktioniert – vom einfachen Klick-Handler bis zur komplexen Single-Page-Application. Wie effizient damit umgegangen wird, entscheidet direkt über gefühlte Geschwindigkeit, Core Web Vitals und damit auch über Rankings. Ob Virtual DOM, Signals oder gezielte Vanilla-JavaScript-Manipulation die richtige Wahl ist, hängt vom Projekt ab – wir beraten dich gerne dazu im Rahmen unserer Custom-Software-Entwicklung oder direkt im unverbindlichen Beratungsgespräch.

Häufige Fragen

Ist das DOM dasselbe wie der HTML-Quelltext?
Nein. Der HTML-Quelltext ist der ursprüngliche Text, den der Server ausliefert. Das DOM ist die daraus vom Browser aufgebaute, lebendige Baumstruktur im Arbeitsspeicher – inklusive aller Änderungen, die JavaScript nach dem Laden vornimmt. Im „Seitenquelltext anzeigen" siehst du das ursprüngliche HTML, in den Browser-DevTools den aktuellen DOM-Zustand, der davon deutlich abweichen kann.
Was ist der Unterschied zwischen DOM und Virtual DOM?
Das DOM ist die tatsächliche, vom Browser verwaltete Baumstruktur der Seite. Das Virtual DOM ist eine leichtgewichtige JavaScript-Repräsentation davon, die Bibliotheken wie React im Speicher führen, um Änderungen zunächst dort zu berechnen und erst danach gebündelt ins echte DOM zu übertragen – das spart teure, direkte DOM-Zugriffe.
Warum sind viele DOM-Manipulationen schlecht für die Performance?
Jede Änderung, die Layout oder Größe eines Elements betrifft, kann einen Reflow auslösen – der Browser muss die Positionen betroffener (oft auch benachbarter) Elemente neu berechnen. Werden viele solcher Änderungen einzeln statt gebündelt vorgenommen, entstehen unnötig viele Reflows hintereinander, was die Seite spürbar verlangsamt.
Was ist das Shadow DOM?
Das Shadow DOM ist ein separater, gekapselter DOM-Teilbaum, der an ein Element angehängt wird und dessen Inhalt und Styles vom Rest der Seite isoliert – Kernbestandteil der Web-Components-Spezifikation. So können HTML-Elemente wie <video> oder eigene Custom Elements interne Struktur mitbringen, ohne dass externes CSS sie versehentlich verändert oder umgekehrt.
Kann ich das DOM auch ohne JavaScript-Framework manipulieren?
Ja, mit purem („Vanilla") JavaScript über native DOM-APIs wie document.querySelector, element.textContent oder element.classList. Für kleinere, gezielte Interaktionen ist das oft sogar die schlankere Lösung – Frameworks lohnen sich vor allem, wenn viele zusammenhängende UI-Zustände synchron gehalten werden müssen.
Warum sollte clientseitig gerenderter Inhalt für SEO mit Vorsicht behandelt werden?
Weil Inhalte, die erst nach dem initialen Laden per JavaScript ins DOM eingefügt werden, für Suchmaschinen und andere Crawler schwerer oder verzögert erfassbar sind. Google rendert JavaScript zwar inzwischen zuverlässig, aber mit zeitlichem Versatz und höherem Rechenaufwand – server-seitig vorgerenderte oder statisch generierte Inhalte werden zuverlässiger und schneller erfasst.
← Zurück zum Glossar
STARTSEITEGLOSSARDOCUMENT-OBJECT-MODEL