След почти 10 години от публикуването на версия 3.0 и 20 години след основаването на проекта, беше пуснат JavaScript библиотеката jQuery 4.0, която, според данни на W3Techs, се използва в 70.9% от 10 милиона най-посещавани сайта в мрежата. Кодът на jQuery се разпространява под MIT лиценз.
Издаването на jQuery 4.0 съдържа промени, които нарушават обратната съвместимост, но разработчиците уверяват, че повечето потребители ще могат безпроблемно да преминат към новата версия с минимални промени в своя код. За улесняване на миграцията може да се използва специален плъгин. Нарушенията на обратната съвместимост се дължат на премахването на остарял код, отстраняването на някои недокументирани вътрешни параметри, спирането на поддръжката на объркващо поведение и на API, които вече са обявени за остарели. Премахването на остарелите API и браузъри е намалило размера на gzip архива с библиотеката с 3 КБ (slim версията сега е 19.5 КБ, а пълната — 27.5 КБ).
Сред промените:
- Поддръжката на браузъра IE 10 и по-стари версии е прекратена (поддръжката на IE 11 е запазена, но ще бъде премахната в Query 5.0), както и на други стари браузъри като Edge Legacy, Android Browser и Firefox до версия 115.
- Вградена е поддръжка на API Trusted Types, разработвано за защита от манипулации с DOM, водещи до междусайтово скриптиране (DOM XSS), например, при неправилна обработка на данни от потребителя в блокове eval() или вставки „.innerHTML“, което може да доведе до изпълнение на JavaScript-код в контекста на определена страница. В методите на jQuery сега може да се предава HTML код под формата на обекти TrustedHTML.
- Кодът на jQuery е адаптиран да използва JavaScript модули ESM (ECMAScript Module) и може да се предоставя и импортира като модул.
- Премахнати са функции, които преди това са били отбелязани като остарели: 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
