Nach fast 10 Jahren seit der Veröffentlichung von Version 3.0 und 20 Jahren nach Gründung des Projekts wurde die JavaScript-Bibliothek jQuery 4.0 veröffentlicht, die laut der Organisation W3Techs in 70.9 % von 10 Millionen der am häufigsten besuchten Websites im Netz verwendet wird. Der jQuery-Code wird unter der MIT-Lizenz verteilt.
Die Veröffentlichung von jQuery 4.0 enthält Änderungen, die die Abwärtskompatibilität beeinträchtigen, jedoch versichern die Entwickler, dass die meisten Benutzer ohne größere Probleme auf die neue Version mit minimalen Änderungen in ihrem Code umsteigen können. Zur Vereinfachung der Migration kann ein spezielles Plugin verwendet werden. Die Abwärtskompatibilitätsprobleme sind auf die Entfernung veralteten Codes, das Entfernen einiger interner nicht dokumentierter Parameter, das Einstellen der Unterstützung für übermäßig kompliziertes Verhalten und das Einstellen der Unterstützung für APIs zurückzuführen, die zuvor als veraltet gekennzeichnet wurden. Die Entfernung veralteter APIs und Browser hat die Größe des gzip-Archivs mit der Bibliothek um 3 KB verringert (die Slim-Version belegt jetzt 19,5 KB, die vollständige 27,5 KB).
Unter den Änderungen:
- Die Unterstützung für den Browser IE 10 und ältere Versionen wurde eingestellt (die Unterstützung für IE 11 bleibt bestehen, wird aber in jQuery 5.0 entfernt), sowie für andere alte Browser wie Edge Legacy, Android Browser und Firefox bis zur Version 115.
- Die Unterstützung für die API Trusted Types wurde integriert, die entwickelt wurde, um vor Manipulationen am DOM zu schützen, die zu Cross-Site-Scripting (DOM XSS) führen, beispielsweise bei falscher Verarbeitung von Daten, die von Benutzern in den eval()-Blöcken oder durch Einfügungen von „.innerHTML“ erhalten werden, was zur Ausführung von JavaScript-Code im Kontext einer bestimmten Seite führen kann. In jQuery-Methoden können jetzt HTML-Code in Form von TrustedHTML-Objekten übergeben werden.
- Der jQuery-Code wurde auf die Verwendung von ESM (ECMAScript Module) JavaScript-Modulen umgestellt und kann als Modul bereitgestellt und importiert werden.
- Funktionen, die zuvor als veraltet markiert waren, wurden entfernt: jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps und jQuery.fx.interval. Für diese Funktionen werden die nativen JavaScript-Funktionen Array.isArray(), JSON.parse(), String.prototype.trim() und Date.now() empfohlen.
- Nicht dokumentierte interne Methoden des Array-Objekts – push, sort und splice – wurden entfernt.
- Die Reihenfolge der Behandlung von Fokuswechselereignissen wurde an die W3C-Spezifikation angepasst – blur, focusout, focus und focusin.
- Die Größe der abgespeckten Variante (slim), die keine Ajax- und Effekt-Module enthält, wurde auf 19,5 k reduziert, indem die Bereitstellung von Deferred-Objekten eingestellt wurde (es wird empfohlen, die standardmäßigen Promises zu verwenden) und Callbacks.
Quelle: opennet.ru
