Po prawie 10 latach od publikacji wersji 3.0 i 20 lat po założeniu projektu, wydano bibliotekę JavaScript jQuery 4.0, która według danych organizacji W3Techs jest używana w 70,9% z 10 milionów najczęściej odwiedzanych stron w sieci. Kod jQuery jest dostępny na licencji MIT.
Wydanie jQuery 4.0 zawiera zmiany, które naruszają współpracę wsteczną, ale zgodnie z zapewnieniami deweloperów, większość użytkowników będzie mogła bezproblemowo przejść na nową wersję z minimalnymi zmianami w swoim kodzie. W celu uproszczenia migracji można użyć specjalnego wtyczki. Naruszenia kompatybilności wstecznej są związane z usunięciem przestarzałego kodu, usunięciem niektórych wewnętrznych, niedokumentowanych parametrów, zaprzestaniem wsparcia dla niektórych zbyt skomplikowanych zachowań oraz zakończeniem wsparcia dla API, które wcześniej zostały oznaczone jako przestarzałe. Usunięcie przestarzałych API i przestarzałych przeglądarek pozwoliło zmniejszyć rozmiar archiwum gzip z biblioteką o 3 KB (wersja slim zajmuje teraz 19,5 KB, a pełna — 27,5 KB).
Wśród zmian:
- Wsparcie dla przeglądarki IE 10 i starszych wersji zostało zakończone (wsparcie dla IE 11 pozostaje, ale zostanie usunięte w Query 5.0), a także dla innych starych przeglądarek, takich jak Edge Legacy, Android Browser i Firefox do wersji 115.
- Zintegrowano wsparcie dla API Trusted Types, rozwijanego w celu ochrony przed manipulacjami w DOM, które mogą prowadzić do ataków XSS (DOM XSS), na przykład przy nieprawidłowym przetwarzaniu danych otrzymywanych od użytkownika w blokach eval() lub wstawieniach „.innerHTML”, co może prowadzić do wykonania kodu JavaScript w kontekście danej strony. W metodach jQuery teraz można przekazywać kod HTML w formie obiektów TrustedHTML.
- Kod jQuery został dostosowany do użycia modułów JavaScript ESM (ECMAScript Module) i może być dostarczany oraz importowany jako moduł.
- Usunięto funkcje, które wcześniej były oznaczane jako przestarzałe: jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps i jQuery.fx.interval. Zamiast tych funkcji zaleca się używanie standardowych funkcji JavaScript: Array.isArray(), JSON.parse(), String.prototype.trim() oraz Date.now()
- Usunięto niedokumentowane, wewnętrzne metody obiektu Array — push, sort oraz splice.
- Kolejność przetwarzania zdarzeń zmiany fokusu została dostosowana do specyfikacji W3C — blur, focusout, focus oraz focusin.
- Rozmiar uproszczonej wersji (slim), nie zawierającej modułów ajax i effects, został zmniejszony do 19,5 kB dzięki zaprzestaniu dostarczania obiektów Deferred (zaleca się używanie standardowych Promises) oraz Callbacks.
Źródło: opennet.ru
