- Migration von XMLHttpRequest zur nativen fetch()-API für bessere Leistung und Streaming-Funktionen.
- Hinwendung zu expliziter Attributvererbung und einer standardisierten Ereignisbenennungskonvention.
- Einführung von Morph-Swaps und des hx-partial-Tags für komplexe DOM-Aktualisierungen.
- Die Verlaufsverwaltung wird grundlegend überarbeitet, indem lokale Snapshots durch echte Serveranfragen ersetzt werden.
Wer sich schon länger in der Webentwicklungsszene auskennt, weiß wahrscheinlich, dass htmx im Grunde ein Zaubertrick für HTML ist. Es ermöglicht Funktionen, für die man normalerweise ein umfangreiches JavaScript-Framework benötigt – wie beispielsweise das Aktualisieren einer Seite ohne vollständiges Neuladen –, indem man einfach ein paar Attribute zu den Tags hinzufügt. Die Veröffentlichung von htmx 4 ist ein Meilenstein, denn es bietet nicht nur ein paar zusätzliche Funktionen, sondern überarbeitet die Engine grundlegend, sodass sich Anwendungen flüssiger und deutlich zuverlässiger anfühlen.
Die Kernphilosophie bleibt unverändert: Die Logik verbleibt auf dem Server, und Hypertext As The Engine Of Application State (HATEOAS) wird genutzt . Anstatt JSON hin und her zu senden, fragt htmx 4 den Server nach HTML-Fragmenten und fügt diese direkt in das DOM ein. Das ist eine Wohltat für alle, die die Komplexität moderner Frontend-Tools satt haben, denn der Fokus liegt auf der Lokalität des Verhaltens , sodass man die Funktionsweise des eigenen Codes allein durch einen Blick auf das HTML nachvollziehen kann.
Die große Fetch()ening

Die wichtigste interne Änderung ist, dass htmx XMLHttpRequest endgültig durch die native fetch()-API ersetzt hat . Auch wenn dies zunächst wie ein unscheinbares Detail im Hintergrund wirkt, ist es tatsächlich ein entscheidender Vorteil. Durch die Verwendung von fetch wird die Bibliothek schlanker und ermöglicht fortgeschrittenes Streaming-HTML . Dies bedeutet jedoch, dass XHR-spezifische Ereignisse nicht mehr verfügbar sind und die Anfrage-Timeouts nun standardmäßig auf 60 Sekunden festgelegt sind, anstatt unbegrenzt zu warten.
Die Erbfolgegewohnheit durchbrechen
Eine der größten Hürden beim Wechsel von Version 2 zu 4 ist die Weitergabe von Attributen an Kindelemente. Früher erfolgte die Vererbung implizit – wenn man beispielsweise einen Bestätigungsdialog in ein Div-Element einfügte, wurde dieser Dialog automatisch allen darin enthaltenen Schaltflächen angezeigt. Jetzt muss man die Vererbung explizit festlegen, indem man den Modifikator `:inherited` zum Attribut hinzufügt. Beispielsweise weist `hx-confirm:inherited` htmx an, dieses Verhalten im DOM-Baum nach unten weiterzugeben. Dadurch wird das unangenehme Gefühl der „Fernwirkung“ beseitigt und das Debuggen der Benutzeroberfläche deutlich vereinfacht.
Intelligentere Tauschgeschäfte und Multi-Targeting

Die Stärke von htmx liegt im Austausch von Inhalten. Version 4 führt Morph Swaps (innerMorph und outerMorph) ein. Anstatt einfach einen Teil der Seite zu entfernen und neues HTML einzufügen, nutzt Morphing den Idiomorph-Algorithmus, um Änderungen zusammenzuführen. Dies ist besonders hilfreich, um den Eingabefokus zu erhalten oder ein Video weiterlaufen zu lassen, während der restliche Inhalt aktualisiert wird. Zusätzlich ermöglicht das neue <hx-partial>-Tag , mit einer einzigen Serverantwort mehrere verschiedene Teile der Seite zu aktualisieren. Dadurch haben Sie mehr Kontrolle als mit den bisherigen Out-of-Band-Swaps (OOB).
Fehlerbehandlung und Verlauf
In früheren Versionen ignorierte htmx häufig 400er- oder 500er-Fehlerantworten. Das hat sich geändert. htmx 4 tauscht Fehlerantworten standardmäßig aus , was ideal ist, um serverseitige Validierungsfehler anzuzeigen. Um dies zu steuern, können Sie das Attribut `hx-status` verwenden , um bestimmte Codes (wie z. B. 422) an ein separates Fehler-Div weiterzuleiten. Bezüglich des Verlaufs: Die Bibliothek speichert keine DOM-Snapshots mehr im `localStorage`. Wenn ein Benutzer nun auf den Zurück-Button klickt, lädt htmx die Seite einfach neu vom Server . So wird sichergestellt, dass der Zustand immer aktuell ist und nicht ein veralteter Zustand einer vorherigen Sitzung.
Ereignisse, Erweiterungen und Skripte

Das Ereignissystem wurde komplett überarbeitet und folgt nun dem htmx:phase:action- Muster. Diese Konsistenz vereinfacht das Einbinden in den Lebenszyklus einer Anfrage erheblich. Im Bereich der Erweiterungen bieten wir jetzt erstklassige Unterstützung für SSE (Server-Sent Events), WebSockets und multipart/mixed-Antworten , wodurch die Erstellung von Echtzeit-Dashboards zum Kinderspiel wird. Für alle, die clientseitige Reaktivität benötigen, bietet hx-live eine DOM-basierte Skriptlösung, die an eine Mischung aus Alpine.js und jQuery erinnert und die Manipulation von Elementen mit einem einfachen q()-Selektor ermöglicht.
Installations- und Upgrade-Pfad
Wenn Sie ein neues Projekt starten, laden Sie einfach die neueste Version 4 über CDN oder NPM herunter. Für bestehende Anwendungen stellt das Team ein Kommandozeilen-Upgrade-Tool (via npx) bereit, das Ihre Templates auf veraltete Attribute und alte Ereignisnamen überprüft. Falls Sie noch nicht bereit für ein komplettes Upgrade sind, kann die Erweiterung htmx-2-compat das alte Verhalten vorübergehend wiederherstellen. Version 2 wird weiterhin unterstützt und bleibt bis Anfang 2027 das „latest“-Tag auf NPM, um zu verhindern, dass versehentlich Millionen von Websites beeinträchtigt werden, die nicht versionierte CDN-Links verwenden.
Sicherheit und Best Practices
Da htmx das direkte Einfügen von HTML ermöglicht, ist das Maskieren von Benutzerinhalten unerlässlich, um XSS-Angriffe zu verhindern. Das Attribut `hx-ignore` ist hierbei ein hervorragendes Werkzeug; es weist htmx an, die Verarbeitung aller Attribute innerhalb eines bestimmten Containers vollständig zu überspringen, was ideal für die sichere Darstellung von rohen, benutzergenerierten Inhalten ist. In Umgebungen mit hohen Sicherheitsanforderungen unterstützt die Erweiterung `hx-csp` die Integration strenger Content-Security-Policies (CSPs), indem sie Nonces verwaltet und die Zieladressen von Anfragen einschränkt.
Diese Weiterentwicklung von htmx macht die Bibliothek von einem praktischen Hilfsprogramm zu einer robusten Grundlage für langfristige Webdienste. Durch die Nutzung der Fetch API, die Verdeutlichung der Attributvererbung und die Einführung ausgefeilter Morphing- und Teilaktualisierungsfunktionen werden Reibungsverluste zwischen Server und Browser minimiert. Ob Sie eine einfache CRUD-Anwendung oder eine komplexe Echtzeit-Oberfläche entwickeln – die Kombination aus einem vereinfachten Ereignissystem und leistungsstarken Streaming-Erweiterungen macht es einfacher denn je, dynamische Benutzererlebnisse zu schaffen, ohne dabei auf HTML verzichten zu müssen.