- 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
- Download über das offizielle CDN und npm möglich
- Offizielle Version:
- Slim-Version:
- npm-Installationsbefehl:
npm install jquery@4.0.0
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
Noch keine Kommentare.