Пасля амаль 10 гадоў з моманту публікацыі галінкі 3.0 і праз 20 гадоў пасля заснавання праекта адбыўся рэліз JavaScript-бібліятэкі jQuery 4.0, якая выкарыстоўваецца па дадзеных арганізацыі W3Techs на 70.9% з 10 млн найболей наведвальных сайтаў у сетцы. Код jQuery распаўсюджваецца пад ліцэнзіяй MIT.
Выпуск jQuery 4.0 утрымоўвае змены, якія парушаюць зваротную сумяшчальнасць, але па запэўненні распрацоўнікаў большасць карыстачоў змогуць бязбольна перайсці на новую версію з мінімальнымі зменамі ў сваім кодзе. Для спрашчэння міграцыі можна выкарыстоўваць адмысловую ўбудову. Парушэнні зваротнай сумяшчальнасці злучаны з выдаленнем састарэлага кода, выдаленнем некаторых унутраных недакументаваных параметраў, спыненнем падтрымкі некаторага залішне ўскладненых паводзін і спыненнем падтрымкі API, раней абвешчаных састарэлымі. Выдаленне састарэлых API і браўзэраў дазволіла скараціць памер gzip-архіва з бібліятэкай на 3 КБ (slim-версія зараз займае 19/05 КБ, а поўная – 27/05 КБ).
Сярод змен:
- Спыненая падтрымка браўзэра 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.camelCase, jQuery.camelCase, jQuery. 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
