Nach fast 10 Jahren seit der Veröffentlichung von Version 3.0 und 20 Jahren nach der Gründung des Projekts wurde die JavaScript-Bibliothek jQuery 4.0 veröffentlicht. Laut W3Techs wird sie auf 70,9 % der 10 Millionen meistbesuchten Websites im Internet verwendet. Der jQuery-Code wird unter der MIT-Lizenz vertrieben.
Die Veröffentlichung von jQuery 4.0 enthält Änderungen, die die Abwärtskompatibilität beeinträchtigen. Die Entwickler versichern jedoch, dass die meisten Benutzer problemlos auf die neue Version umsteigen können, wobei nur minimale Änderungen an ihrem Code erforderlich sind. Zur Vereinfachung der Migration kann ein spezielles Plugin verwendet werden. Die Abwärtskompatibilität wurde durch das Entfernen von veraltetem Code, das Löschen einiger interner, nicht dokumentierter Parameter und die Einstellung der Unterstützung für einige übermäßig komplexe Verhaltensweisen sowie der Unterstützung für APIs, die zuvor als veraltet gekennzeichnet wurden, beeinträchtigt. Durch die Entfernung veralteter APIs und Browser konnte die Größe des gzip-Archivs mit der Bibliothek um 3 KB reduziert werden (die schlanke Version hat jetzt eine Größe von 19,5 KB, während die vollständige Version 27,5 KB beträgt).
Zu den Änderungen gehören:
- Die Unterstützung für den Browser IE 10 und frühere Versionen wurde eingestellt (IE 11 bleibt unterstützt, wird jedoch in Query 5.0 entfernt), ebenso wie für andere alte Browser wie Edge Legacy, Android Browser und Firefox bis zur Version 115.
- Es wurde eine Unterstützung für die API Trusted Types integriert, die zum Schutz vor DOM-Manipulationen entwickelt wurde, die zu Cross-Site-Scripting (DOM XSS) führen können, beispielsweise bei unsachgemäßer Verarbeitung von Benutzereingaben in eval()-Blöcken oder bei Einfügungen von „.innerHTML“, was zur Ausführung von JavaScript-Code im Kontext einer bestimmten Seite führen kann. HTML-Code kann jetzt in jQuery-Methoden in Form von TrustedHTML-Objekten übergeben werden.
- Der jQuery-Code wurde auf die Verwendung von ESM-JavaScript-Modulen (ECMAScript Module) migriert und kann als Modul bereitgestellt und importiert werden.
- Veraltete Funktionen 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. Es wird empfohlen, die nativen JavaScript-Funktionen Array.isArray(), JSON.parse(), String.prototype.trim() und Date.now() anstelle dieser Funktionen zu verwenden.
- Nicht dokumentierte interne Methoden des Array-Objekts wurden entfernt — push, sort und splice.
- Der Ablauf zur Verarbeitung von Fokuswechselereignissen wurde an die W3C-Spezifikation angepasst — blur, focusout, focus und focusin.
- Die Größe der abgespeckten Version (slim), die keine Ajax- und Effektmodule enthält, wurde auf 19,5 k reduziert, da die Bereitstellung von Deferred-Objekten eingestellt wurde (es wird empfohlen, stattdessen die standardmäßigen Promises und Callbacks zu verwenden).
Quelle: opennet.ru
