Zusammenfassung

  • Der W3C-DOM4-Entwurf vom Dezember 2012 beschrieb bereits Mutation Observers und ihre Eintragswarteschlangen. Die Empfehlung von November 2015 nannte sie ausdrücklich als Nachfolger der Mutation Events.
  • Im heutigen DOM können Autoren Änderungen an Kindknoten, Attributen und Text in einem gewählten Bereich beobachten. Der Browser sammelt Einträge und informiert in einem Mikrotask; die Anwendung entscheidet über ihre Reaktion.

Auf einer Konferenzseite werden drei Sitzungen bearbeitet. Eine Karte kommt hinzu, bei einer zweiten ändert sich der Raum, eine dritte verschwindet nach ihrem Ende. Eine Komponente hält den Suchindex aktuell. Sie braucht eine Nachricht über die Arbeit, aber keinen Anruf mitten in jedem Handgriff. Ein Bündel von Änderungen erreicht sie, wenn die Meldungen für diese Runde bereitstehen.

Der W3C-DOM4-Arbeitsentwurf vom 6. Dezember 2012 kannte Beobachter, Eintragswarteschlangen und Methoden, mit denen Beobachtungen enden oder ausstehende Einträge abgeholt werden. Der Browser muss nicht wissen, was eine Konferenz ist. Er muss Änderungen an Knoten den Beobachtern zuordnen, die darum gebeten haben. Die W3C-Publikationsgeschichte ordnet den Entwurf in die Entwicklung zur Empfehlung ein.

Die DOM4-Empfehlung vom 19. November 2015 formulierte den Wechsel gleich in der Zusammenfassung: Mutation Observers ersetzen Mutation Events. Das neue Verfahren reiht MutationRecord-Objekte bei interessierten Beobachtern ein und plant anschließend einen zusammengesetzten Mikrotask zur Benachrichtigung. Mehrere Änderungen können als Liste beim Callback eintreffen. Der Browser organisiert die Zustellung; der Empfänger kann die Nachrichten gemeinsam lesen.

Der Beobachter bestellt bestimmte Post. childList umfasst hinzugefügte und entfernte Kinder, attributes Attributänderungen, characterData geänderten Text. subtree erweitert den Bereich auf Nachkommen. Ein Attributfilter schränkt die Namen ein; Optionen für alte Werte bewahren den vorherigen Inhalt auf. Die Suchkomponente kann die eigene Sitzungsliste verfolgen, ohne die gesamte Seite zu belauschen.

Ein Eintrag nennt Art und Ziel der Änderung. Je nach Fall enthält er hinzugefügte oder entfernte Knoten, Nachbarn, Attributnamen oder frühere Werte. Die Indexkomponente liest die Liste und entscheidet, welche Sitzungen sie neu erfassen muss. Die Auswahl folgt ihren Beobachtungsoptionen. Der Browser liefert Umschlag und Zustellzeit, während die Bedeutung der Nachricht Sache des Empfängers bleibt.

Der DOM Living Standard der WHATWG beschreibt das heutige Verfahren. Ein Mikrotask benachrichtigt ausstehende Beobachter und übergibt ihre Eintragswarteschlangen an die Callbacks. Mit takeRecords() kann Code ausstehende Einträge direkt entnehmen und die Warteschlange leeren. disconnect() beendet die Beobachtung und räumt auf. Verschwindet die Sitzungsliste aus der Seite, kann auch ihr Briefkasten schließen.

Laut W3C-Publikationsgeschichte wurde die DOM4-Momentaufnahme 2020 zurückgezogen; der lebende DOM-Standard führt die Beobachterregeln fort. Die Dokumente von 2012 und 2015 zeigen den historischen Wechsel, der aktuelle Text die heutigen Abläufe. Die gemeinsame Infrastruktur bleibt schmal: ausgewählte Änderungen einsammeln und zustellen. Die Komponenten entscheiden selbst, wie sie ihre Listen danach ordnen.