14 Punkte von GN⁺ 2026-01-19 | 3 Kommentare | Auf WhatsApp teilen
  • Mit einem Major-Version-Update nach rund 10 Jahren wurde jQuery 4.0.0 offiziell veröffentlicht
  • Support für IE 10 und älter sowie alte Browser eingestellt, Code verschlankt und Einhaltung moderner Standards verbessert; die meisten Nutzer können ohne Codeänderungen upgraden
  • Umstellung auf eine ES-Modul-basierte Struktur mit Einführung von Rollup-Builds für Kompatibilität mit modernen Entwicklungsumgebungen
  • Unterstützung für Trusted Types und CSP hinzugefügt, um Konflikte mit Sicherheitsrichtlinien zu minimieren
  • Entfernung veralteter APIs und Verkleinerung des Slim-Builds für bessere Performance und Wartbarkeit

Wichtiger Überblick zu jQuery 4.0.0

  • jQuery 4.0.0 ist ein großes Major-Release nach rund 10 Jahren, das nach einem langen Entwicklungszyklus und mehreren Pre-Releases fertiggestellt wurde
    • Die meisten Nutzer können ohne Codeänderungen upgraden
    • Legacy-Code und nicht öffentliche Parameter, die sich in früheren Versionen angesammelt hatten, wurden entfernt
  • Ein Upgrade-Guide und das jQuery-Migrate-Plugin werden zusammen bereitgestellt, um den Umstieg von früheren Versionen zu unterstützen
  • Die Distribution ist über das offizielle CDN und npm möglich; andere CDNs sollen nach und nach aktualisiert werden

Änderungen bei der Browser-Unterstützung

  • Support für IE 10 und älter eingestellt, IE 11 soll mit jQuery 5.0 schrittweise entfernt werden
  • Support für Edge Legacy, alte iOS-Versionen (älter als die letzten 3 Versionen), alte Firefox-Versionen (älter als die letzten 2 Versionen) und den Android Browser eingestellt
  • Wenn alte Browser weiterhin unterstützt werden müssen, wird empfohlen, jQuery 3.x weiter zu verwenden

Kompatibilität mit Trusted Types und CSP

  • Unterstützung für Trusted Types hinzugefügt, damit TrustedHTML-Objekte sicher verarbeitet werden können
  • Die meisten asynchronen Skript-Anfragen wurden auf tag-basiert umgestellt, um CSP-Fehler zu vermeiden
    • Bei Verwendung der Option "headers" kann weiterhin XHR genutzt werden, empfohlen wird jedoch die Nutzung von scriptAttrs

Umstellung auf ES-Module

  • Der jQuery-Quellcode wurde vollständig von AMD auf ES-Module migriert
    • Statt RequireJS wird nun Rollup als Build-Tool eingesetzt
    • Tests werden separat auf ES-Modul-Basis ausgeführt
  • Über `` wird Kompatibilität mit modernen Browsern und Build-Tools sichergestellt

Entfernung veralteter APIs

  • APIs, die schon lange als veraltet galten, wurden vollständig entfernt
    • Entfernte Funktionen: jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps, jQuery.fx.interval
    • Ersatz: Nutzung nativer Methoden wie Array.isArray(), JSON.parse(), String.prototype.trim(), Date.now() usw.
  • Zusammen mit der Entfernung von IE-bezogenem Code verringerte sich die Größe um etwa 3 KB (gzip)

Entfernung interner Methoden

  • Die nur intern verwendeten Methoden push, sort, splice wurden aus dem jQuery-Prototyp entfernt
    • Statt $elems.push(elem) kann die Form [].push.call($elems, elem) verwendet werden

Geänderte Reihenfolge von Fokus-Ereignissen

  • Vereinheitlichung auf die Fokus-/Blur-Ereignisreihenfolge gemäß W3C-Spezifikation
    • Neue Reihenfolge: blur → focusout → focus → focusin
    • Da sie sich von der bisherigen jQuery-Reihenfolge unterscheidet, ist Vorsicht bei der Kompatibilität nötig
    • In allen Browsern außer IE gilt dieselbe Reihenfolge

Verbesserungen am Slim-Build

  • Durch die Entfernung von Deferreds und Callbacks wurde die Dateigröße auf etwa 19,5 KB (gzip) reduziert
    • Da die meisten Browser native Promises unterstützen, ist ein Ersatz möglich
    • Falls Unterstützung für IE11 nötig ist, wird der Main-Build oder ein Promise-Polyfill empfohlen
  • Der Slim-Build ist etwa 8 KB kleiner, da Module rund um Ajax und Animation ausgeschlossen sind

Download und Distribution

Mitwirkende und 20-jähriges Jubiläum

  • Zahlreiche Open-Source-Mitwirkende beteiligten sich mit Patches, Bug-Reports und Tests
  • Zum 20-jährigen Jubiläum von jQuery gab es ein Team-Reunion in Dallas, an dem auch Gründer John Resig per Zoom teilnahm

Zusammenfassung der wichtigsten Codeänderungen (Changelog)

  • Ajax: Verbesserte Verarbeitung binärer Daten, Vermeidung von CSP-Fehlern, robusteres JSONP-Fehler-Handling
  • CSS: Korrektur der Größenberechnung für ``-Elemente, verbesserte Behandlung von Leerzeichen in CSS-Variablen, Entfernung des opacity-Hooks
  • Core: Umstellung AMD → ES-Module, Nutzung von DOMParser, Entfernung von Code für alte Browser
  • Event: Native Verarbeitung von focus-/blur-Events, Entfernung des event.which-Shims
  • Selector: Integration von Sizzle, Verbesserungen bei :has und :even/:odd, Hinzufügen von uniqueSort-Chaining
  • Docs: Aktualisierung auf HTTPS-Links, Überarbeitung der Dokumente README und CONTRIBUTING
  • Release: Automatisierung von Build- und Distributionsprozessen, Umstellung auf release-it

Zusammenfassung

  • jQuery 4.0.0 ist eine strukturell überarbeitete Version für moderne Webstandards und Sicherheitsrichtlinien
  • Entfernung von Legacy-Code, ES-Modularisierung, mehr Sicherheit und geringere Größe stärken die Basis für die langfristige Wartung
  • Das Release gilt als symbolische Veröffentlichung zum 20-jährigen Jubiläum des jQuery-Ökosystems

3 Kommentare

 
tsboard 2026-01-21

Ein bewegendes 20-jähriges Jubiläum. Inzwischen gibt es zwar kaum noch Gelegenheiten, es zu verwenden, aber ich hoffe, dass es vor Ort weiterhin als nützliches Werkzeug geschätzt wird.

 
shakespeares 2026-01-19

Erstaunlich zählebig … haha

 
GN⁺ 2026-01-19
Hacker-News-Kommentare
  • Dazu passend gibt es einen guten Artikel darüber, wie man jQuery in Legacy-Codebasen reaktiv einsetzen kann, wenn moderne Frameworks nicht infrage kommen.
    Reactive jQuery for Spaghetti-fied Legacy Codebases

    • Früher wurde für so etwas oft BackboneJS verwendet. Es wird auch heute noch gepflegt.
      Wenn man jQuery aus Legacy-Gründen einsetzen muss, kann Backbone ein guter Zwischenschritt sein, bevor man auf ein modernes Framework umsteigt.
      BackboneJS-Website, GitHub-Tag-Liste
    • Dieser Artikel hat mich an die Zeit des alten jQuery-Spaghetti-Codes erinnert.
      Tatsächlich war überengineerter React-Code manchmal schlechter als sauber strukturierter jQuery-Code.
      React hat die Qualitätsmaßstäbe zwar angehoben, aber manchmal ist es effizienter, vertraute Werkzeuge passend einzusetzen.
    • Ich habe diesen Ansatz auch verwendet, und er war deutlich besser als das jQuery-Chaos im Stil der 2010er.
      Besonders für Dinge wie Userscripts, bei denen der Problemumfang klein ist und ein Build-Step lästig wäre, passt das gut.
      Eigentlich lässt sich das auch ohne jQuery allein mit querySelector, addEventListener und innerHTML umsetzen.
    • Die letzte große jQuery-App, die ich gebaut habe, nutzte ebenfalls dieses reaktive Muster.
      Ich musste zwangsweise ein benutzerdefiniertes Such-Frontend in Joomla CMS hineinpressen, und es funktionierte ziemlich gut.
    • Wirklich ein großartiges Muster. Wenn man noch Signals hinzufügt, werden Update-Funktionen automatisch aufgerufen.
      Genau so machen wir es bei Reactive Mastro.
  • jQuery ist immer noch eine meiner Lieblingsbibliotheken.
    Es ist ein Werkzeug, das meine Karriere geprägt hat, deshalb habe ich immer eine besondere Zuneigung dazu.

    • Die jungen Leute jagen heute nur neuen Frameworks hinterher, aber dank jQuery und dem .NET Framework hatte ich immer Arbeit.
    • Ich benutze jQuery seit 15 Jahren. Es ist immer noch meine Standardwahl.
    • Es wäre schön, wenn jemand jQuery einen Virtual DOM verpassen würde.
      Die Kombination aus jQuery + jQuery UI + Plugins + AI hätte meiner Meinung nach enormes Potenzial.
  • Immer wenn von HTMX die Rede ist, denke ich: „Lässt sich das nicht einfach mit drei Zeilen jQuery machen?“
    Jedenfalls hat jQuery immer Probleme für mich gelöst, und das ist es, worauf es ankommt.

    • Stimmt. HTMX ist aus intercooler.js hervorgegangen, das ursprünglich von der jQuery-Methode .load() inspiriert war.
      Siehe jQuery.load()-Dokumentation
      Ich habe das bei Performance-Arbeiten entdeckt, und mein Respekt für jQuery ist dadurch nur noch größer geworden.
    • Das Problem von jQuery ist, dass es imperativer Code ist und komplex wird, sobald man mehrere Zustände verwalten muss.
    • Heute nutze ich natives JS, aber die Eleganz des $()-Selektor-Interfaces war immer noch kaum zu übertreffen.
      Leistungsunterschiede ließen sich womöglich durch Vorberechnung ausgleichen.
    • Wenn ich Django verwende, löse ich die meisten Probleme mit einer Kombination aus HTMX und vanilla JS.
      Das ist einfach und kann sich trotzdem fast wie eine SPA anfühlen.
  • Good ol’ jQuery, ich bin wirklich dankbar dafür.

  • Es freut mich zu sehen, dass jQuery immer noch gepflegt und aktualisiert wird.
    Aber irgendwie macht mich das auch traurig, denn das heißt wohl, dass React vielleicht ebenfalls bis 2060 überlebt.

    • Dank React ist die App-Entwicklung sehr viel besser geworden.
      Wenn ich an die frühere Callback-Hölle denke, wirkt die Gegenwart fast traumhaft.
    • Um 2060 herum könnte React Native vielleicht bei v0.93 angekommen sein.
    • De facto existieren schon jetzt zwei Reacts. 2060 sind es dann vielleicht fünf.
  • In den 2000er- und 2010er-Jahren, als SPA-Frameworks noch nicht alltäglich waren, habe ich Webentwicklung ebenfalls mit jQuery gelernt.
    Ein großer Teil dessen, was ich damals gebaut habe, läuft wahrscheinlich noch heute.
    An das jQuery-Team geht mein Dank.

  • Glückwunsch an alle, die an der jQuery-4.0-Veröffentlichung beteiligt waren.
    Wer einen stärker strukturierten Ansatz sucht, kann sich JsViews ansehen, ein reaktives Templating-System.
    Es ist alt und stabil, hat aber nie so viel Aufmerksamkeit bekommen wie moderne Frameworks.

    • Von JsViews hatte ich bisher noch nicht gehört, aber es klingt interessant.
      Ich persönlich mag moderne jQuery-artige Ansätze wie cheerio und alpine.js.
      cheerio.js.org, alpinejs.dev
    • Ich werde jQuery wohl auch nicht direkt verwenden, aber der Quellcode von JsViews ist sicher einen Blick wert.
      Das Seitendesign wirkt allerdings so veraltet, dass das die Verbreitung vermutlich bremst.
      Dafür lädt es schnell, und die Leichtgewichtigkeit ist beeindruckend.
      jsrender.min.js ist nur 12.82kB groß.
  • Kaum zu glauben, aber jQuery 4.0 unterstützt weiterhin IE11.
    Das soll erst in jQuery 5.0 endgültig entfernt werden.

    • Offenbar wurde die IE11-Unterstützung beibehalten, um die Veröffentlichung von 4.0 nicht weiter zu verzögern.
      Siehe zugehöriger PR und Issue
      Wenn man bedenkt, dass 3.0 vor zehn Jahren erschienen ist, ist das ziemlich erstaunlich.
    • Das dient der Abwärtskompatibilität. Es gibt immer noch Umgebungen, in denen IE11 erforderlich ist.
      Es ist dankenswert, dass solche Nutzer und Produkte weiterhin unterstützt werden.
    • Microsoft will IE11 bis 2032 unterstützen – über Windows 10 LTSC und den Edge-IE-Modus in Windows 11.
    • Nicht jeder auf der Welt kann die neueste Hardware und Software verwenden.
      Es gibt immer noch viele Schulcomputerräume, die mit alten Systemen arbeiten.
  • Der Aufwand, der in das Upgrade-Tool von jQuery geflossen ist, ist wirklich beeindruckend.

  • Ich liebe die Chaining-Syntax von jQuery immer noch.
    Vor 15 Jahren habe ich ein jQuery-Tutorial auf Französisch geschrieben, das viele Aufrufe bekommen hat.
    Ich hoffe, ich habe damit wenigstens ein kleines bisschen zur Verbreitung von jQuery beigetragen.