Почти 10 години след пускането на версия 3.0 и 20 години след основаването на проекта, JavaScript библиотеката jQuery 4.0 беше пусната. Според W3Techs, тя се използва от 70.9% от 10-те милиона най-посещавани уебсайта в мрежата. Кодът на jQuery се разпространява под лиценза на MIT.
Изданието на jQuery 4.0 съдържа промени, които нарушават обратната съвместимост, но разработчиците уверяват повечето потребители, че могат да мигрират към новата версия гладко с минимални промени в кода си. Може да се използва специален плъгин за опростяване на миграцията. Нарушенията на обратната съвместимост включват премахване на остарял код, премахване на някои вътрешни недокументирани параметри, остаряване на някои прекалено сложни поведения и остаряване на преди това остарели API. Премахването на остарели API и браузъри намали размера на gzip архива, съдържащ библиотеката, с 3 KB (тънката версия сега заема 19.5 KB, а пълната версия - 27.5 KB).
Сред промените:
- Поддръжката за IE 10 и по-стари браузъри е преустановена (поддръжката за IE 11 е запазена, но ще бъде премахната в Query 5.0), както и за други по-стари браузъри, като например Edge Legacy, Android Браузър и Firefox до клон 115.
- Вградена е поддръжка за Trusted Types API. Този API е проектиран да предпазва от манипулации на DOM, които водят до междусайтово скриптиране (DOM XSS), като например неправилна обработка на предоставени от потребителя данни в блокове eval() или вмъквания на ".innerHTML", което може да доведе до изпълнение на JavaScript код в контекста на конкретна страница. jQuery методите вече могат да приемат HTML код под формата на TrustedHTML обекти.
- jQuery кодът е конвертиран, за да използва ESM (ECMAScript Module) JavaScript модули и може да бъде доставян и импортиран като модул.
- Следните функции са премахнати и преди това са били маркирани като остарели: 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. Препоръчително е да се използват стандартните JavaScript функции Array.isArray(), JSON.parse(), String.prototype.trim() и Date.now() вместо тези функции.
- Премахнати са недокументирани вътрешни методи на обекта Array - push, sort и splice.
- Редът на обработка на събитията за промяна на фокуса е приведен в съответствие със спецификацията на W3C - blur (размазване), focusout (отклонение от фокуса), focus (фокус) и focusin (включване на фокуса).
- Размерът на slim версията, която не съдържа ajax и effects модулите, е намален до 19.5k чрез спиране на доставката на Deferred обекти (препоръчително е да се използват стандартните Promises) и Callbacks.
Източник: opennet.ru
