jQuery 4.0.0 je vonku: čo sa mení po takmer 10 rokoch a na čo si dať pozor pri upgrade
Presne 14. januára 2006 John Resig prvýkrát predstavil jQuery na BarCampe v New Yorku. O 20 rokov neskôr je na stole finálne vydanie jQuery 4.0.0 – prvý veľký major release po takmer dekáde. Po niekoľkých pre-release verziách prichádza balík zmien, ktoré posúvajú knižnicu smerom k modernejšiemu webu, zjednodušujú interné časti a zároveň odstraňujú historické kompromisy.
Toto vydanie obsahuje breaking changes, takže pred nasadením je dobré prejsť detaily a pripraviť si migráciu. Tím jQuery zároveň počíta s tým, že väčšina používateľov upgradne s minimálnymi zásahmi do kódu – veľká časť zmien je o odstránení „legacy“ správania a API, ktoré už roky nemalo zmysel držať pri živote.
Na prechod je pripravený oficiálny upgrade guide aj aktuálne vydanie jQuery Migrate pluginu (pomocný plugin, ktorý zachytáva nekompatibility a dočasne emuluje staršie správanie). Ak pri upgrade narazíš na problém, tím žiada reportovať issue na GitHube: https://github.com/jquery/jquery/issues.
Kde jQuery 4.0.0 získať (CDN, npm, slim build)
Release je dostupný klasicky cez jQuery CDN aj cez npm. Tretie strany (iné verejné CDNy) ho pravdepodobne nasadia čoskoro, ale ich release proces jQuery tím neovplyvňuje – môže to trvať pár dní.
Priame odkazy na CDN súbory
- https://code.jquery.com/jquery-4.0.0.js
- https://code.jquery.com/jquery-4.0.0.min.js
Inštalácia cez npm
npm install jquery@4.0.0
Slim build (menší balík) – kedy sa oplatí
Popri „plnej“ verzii existuje aj slim build, ktorý vynecháva moduly, ktoré dnes často nepotrebuješ: typicky ajax (ak používaš fetch alebo samostatnú ajax knižnicu), a tiež časti okolo animácií, kde sa často dá vystačiť s CSS a triedami. Navyše, v podporovaných prehliadačoch (okrem IE11) sú k dispozícii natívne Promises, takže Deferreds a Callbacks už nie sú v praxi potrebné tak často.
V jQuery 4.0.0 je slim build ešte menší – po odstránení Deferreds a Callbacks má približne 19.5kB gzipped. Deferreds síce dlhodobo podporujú štandard Promises A+ (https://promisesaplus.com/), no natívne Promises pokryjú väčšinu use-caseov. Deferreds majú aj pár extra možností, ktoré natívne Promises nemajú, ale typicky sa dá migrácia spraviť na Promise metódy.
Poznámka k IE11
Ak potrebuješ podporovať IE11, slim build pre teba môže byť problém bez polyfillu, pretože natívne Promises tam nie sú. V takom prípade je bezpečnejšie použiť plný build, alebo doplniť polyfill pre Promises.
Slim build súbory na CDN:
- https://code.jquery.com/jquery-4.0.0.slim.js
- https://code.jquery.com/jquery-4.0.0.slim.min.js
Aktualizácie sú dostupné ako aktuálne verzie aj na npm a Bower. Kompletný prehľad možností distribúcie je na https://jquery.com/download/.
Najväčšie zmeny v jQuery 4.0.0 (čo je nové a čo môže rozbiť kód)
1) Koniec podpory pre IE < 11 (a ďalšie veľmi staré prehliadače)
jQuery 4.0 oficiálne zahadzuje podporu pre IE10 a staršie. Logika je jednoduchá: jQuery chce support odstraňovať postupne a ďalší krok (odstránenie IE11) je plánovaný až v ďalšej major verzii – podľa oznámenia sa to má stať v jQuery 5.0 (viď PR: https://github.com/jquery/jquery/pull/5077). V 4.0 sa teda primárne odstraňuje kód, ktorý existoval vyslovene kvôli IE < 11.
Okrem toho ide preč aj podpora ďalších historických prehliadačov: Edge Legacy (starý Edge pred Chromium), iOS verzie staršie než posledné 3, Firefox verzie staršie než posledné 2 (s výnimkou Firefox ESR) a tiež Android Browser. V ideálnom prípade to od teba nevyžaduje žiadne úpravy; ak však potrebuješ podporovať niektorý z týchto prehliadačov, zostávať na jQuery 3.x je rozumnejšia voľba.
2) Trusted Types a prísnejší CSP bez bolestí
jQuery 4.0 pridáva podporu pre Trusted Types (bezpečnostný mechanizmus v prehliadačoch, ktorý pomáha obmedzovať XSS tým, že vyžaduje „trusted“ objekty pre rizikové operácie). Konkrétne ide o to, aby HTML zabalené do TrustedHTML (https://developer.mozilla.org/en-US/docs/Web/API/TrustedHTML) mohlo byť použité ako input do manipulačných metód jQuery bez porušenia CSP direktívy require-trusted-types-for.
S tým súvisí aj zmena v ajax časti: niektoré requesty už historicky používali <script> tagy kvôli zachovaniu atribútov ako crossdomain, no teraz jQuery prešlo na to, že väčšinu asynchrónnych script requestov robí cez <script> tagy, aby sa predišlo CSP chybám spôsobeným inline scriptami (detail: https://github.com/jquery/jquery/pull/4763).
Stále existujú situácie, keď sa pri asynchrónnych script requestoch použije XHR – typicky keď odovzdáš option "headers". Tím však vyslovene odporúča použiť namiesto toho scriptAttrs (atribúty na vytvorený <script> element). Inak sa jQuery snaží použiť <script> tag vždy, keď je to možné.
3) Zdrojáky jQuery prešli na ES modules (AMD je minulosť)
Veľká modernizácia sa odohrala aj v build pipeline: zdrojový kód na branche main bol migrovaný z AMD (https://requirejs.org/docs/whyamd.html) na ES modules (https://github.com/jquery/jquery/pull/4541). Zdrojáky jQuery síce boli dostupné na npm a GitHube aj predtým, ale bez RequireJS (ich vtedajší build nástroj) sa nedali pohodlne importovať ako moduly.
Dnes je situácia iná: balenie jQuery je postavené na Rollup (https://rollupjs.org/introduction/) a tím spúšťa testy aj priamo nad ES modulmi. Praktický dopad: jQuery je kompatibilnejšie s modernými build toolmi, workflowmi a v prehliadačoch môže fungovať aj cez <script type=module>.
4) Odstránené deprecated API – prechod na natívne ekvivalenty
V major release sa konečne vyhadzujú funkcie, ktoré boli deprecované už niekoľko verzií. Väčšina z nich bola buď vždy myslená ako interná, alebo dnes existuje natívny ekvivalent v podporovaných prehliadačoch.
Konkrétne sú odstránené:
jQuery.isArrayjQuery.parseJSONjQuery.trimjQuery.typejQuery.nowjQuery.isNumericjQuery.isFunctionjQuery.isWindowjQuery.camelCasejQuery.nodeNamejQuery.cssNumberjQuery.cssPropsjQuery.fx.interval
Náhrady sú väčšinou priamo natívne API, napríklad: Array.isArray(), JSON.parse(), String.prototype.trim() alebo Date.now().
V kombinácii s odrezaním IE-špecifického kódu to prinieslo aj príjemný vedľajší efekt: výsledná veľkosť balíka je menšia o vyše 3kB (gzipped).
5) Preč z jQuery prototype: interné Array metódy push/sort/splice
jQuery prototype (teda to, čo visí na jQuery.fn) historicky obsahovalo aj niektoré Array metódy, ktoré sa nesprávali ako bežné jQuery chainable metódy a reálne boli určené iba na interné použitie. Konkrétne šlo o push, sort a splice.
V jQuery 4.0 boli tieto metódy z prototype odstránené. Ak si ich používal priamo na jQuery kolekcii, odporúčaná náhrada vyzerá napríklad takto:
// Predtým (jQuery 3.x):
// $elems.push(elem)
// Teraz (jQuery 4.x):
[].push.call($elems, elem);
6) Poradie focus/blur eventov sa mení – podľa W3C špecifikácie
Dlhé roky sa prehliadače nevedeli zhodnúť na poradí eventov okolo focusu: focusin, focusout, focus, blur. jQuery si preto historicky presadzovalo vlastné konzistentné poradie naprieč prehliadačmi. Problém je, že moderné verzie prehliadačov, ktoré jQuery 4.0 podporuje, sa konečne zjednotili – ale na poradí, ktoré je iné než to, ktoré jQuery roky emulovalo.
Od jQuery 4.0 už knižnica neprepisuje natívne správanie. To znamená, že všetky prehliadače okrem IE budú nasledovať aktuálnu W3C špecifikáciu v tomto poradí:
- blur
- focusout
- focus
- focusin
V predchádzajúcich verziách bolo poradie v jQuery: focusout, blur, focusin, focus. Zaujímavosť z release notes: jediný prehliadač, ktorý kedysi nasledoval starú W3C špecifikáciu (pred jej aktualizáciou v roku 2023), bol Internet Explorer.
7) Slim build je ešte „slim“: bez Deferreds a Callbacks (a čo s tým)
Okrem toho, že slim build je menší, stojí za zmienku konkrétna zmena: v jQuery 4.0.0 slim build už neobsahuje Deferreds a Callbacks. Ak si na nich staval, treba prejsť na natívne Promises (kde to dáva zmysel), alebo použiť plný build.
Praktický postup migrácie: čo spraviť pred nasadením jQuery 4
- Prejdi si oficiálny upgrade guide: https://jquery.com/upgrade-guide/4.0/
- Dočasne pridaj jQuery Migrate plugin a prejdi aplikáciu (console warnings často presne ukážu, čo treba upraviť): https://github.com/jquery/jquery-migrate/
- Skontroluj, či tvoja cieľová podpora prehliadačov ešte dáva zmysel (IE10 a staršie sú preč; ak ich musíš držať, zostaň na jQuery 3.x).
- Ak používaš prísny CSP (najmä
require-trusted-types-for), otestuj DOM manipulácie a script transport v AJAX – jQuery 4.0 má explicitné vylepšenia okolo Trusted Types a CSP. - Prehľadaj kód na odstránené API (
jQuery.trim,jQuery.parseJSON,jQuery.now, …) a nahraď ich natívnymi ekvivalentmi. - Ak niekde pracuješ s jQuery kolekciou ako s arrayom a používaš
$elems.push/sort/splice, uprav to na volanie Array prototypu cezcall. - Otestuj formuláre a UI, kde sa spoliehaš na poradie focus/blur eventov – v jQuery 4.0 sa poradie zmenilo podľa W3C a môže to ovplyvniť custom validácie alebo wizardy.
Release poznámky, výročie a vizuál z reunionu tímu
jQuery 4.0.0 vychádza symbolicky pri 20. výročí projektu. Tím spomína, že mnoho ľudí sa za tie roky podieľalo na jQuery a pridružených projektoch; pri príležitosti výročia mali reunion v Dallase a John Resig sa pripojil cez Zoom. Release bol publikovaný práve počas tohto stretnutia.

Changelog: kompletný diff a vybrané oblasti zmien
Kompletný changelog je dostupný ako compare medzi 3.7.1 a 4.0.0: Full changelog: 4.0.0.
Nižšie je výber zmien podľa oblastí tak, ako sú uvedené v oficiálnych release notes (s linkami na issue/commity).
Ajax
- Don’t treat array data as binary (992a1911)
- Allow
processData: trueeven for binary data (ce264e07) - Support binary data (including FormData) (a7ed9a7b)
- Support
headersfor script transport even when cross-domain (#5142, 6d136443) - Support
nullas success functions injQuery.get(#4989, 74978b7e) - Don’t auto-execute scripts unless dataType provided (#4822, 025da4dd)
- Make responseJSON work for erroneous same-domain JSONP requests (68b4ec59)
- Execute JSONP error script responses (#4771, a1e619b0)
- Avoid CSP errors in the script transport for async requests (#3969, 07a8e4a1)
- Drop the json to jsonp auto-promotion logic (#1799, #3376, e7b3bc48)
- Overwrite s.contentType with content-type header value, if any (#4119, 7fb90a6b)
- Deprecate AJAX event aliases, inline event/alias into deprecated (23d53928)
- Do not execute scripts for unsuccessful HTTP responses (#4250, 50871a5a)
- Simplify jQuery.ajaxSettings.xhr (#1967, abdc89ac)
Attributes
- Make
.attr( name, false )remove for all non-ARIA attrs (#5388, 063831b6) - Shave off a couple of bytes (b40a4807)
- Don’t stringify attributes in the setter (#4948, 4250b628)
- Drop the
toggleClass(boolean|undefined)signature (#3388, a4421101) - Refactor val(): don’t strip carriage return, isolate IE workarounds (ff281991)
- Don’t set the type attr hook at all outside of IE (9e66fe9a)
CSS
- Fix dimensions of table
<col>elements (#5628, eca2a564) - Drop the cache in finalPropName (640d5825)
- Tests: Fix tests & support tests under CSS Zoom (#5489, 071f6dba)
- Fix reliableTrDimensions support test for initially hidden iframes (b1e66a5f)
- Selector: Align with 3.x, remove the outer
selector.jswrapper (53cf7244) - Make the reliableTrDimensions support test work with Bootstrap CSS (#5270, 65b85031)
- Make
offsetHeight( true ), etc. include negative margins (#3982, bce13b72) - Return
undefinedfor whitespace-only CSS variable values (#5120) (7eb00196) - Don’t trim whitespace of undefined custom property (#5105, ed306c02)
- Skip falsy values in
addClass( array ), compress code (#4998, a338b407) - Justify use of rtrim on CSS property values (655c0ed5)
- Trim whitespace surrounding CSS Custom Properties values (#4926, efadfe99)
- Include
show,hide&togglemethods in the jQuery slim build (297d18dd) - Remove the opacity CSS hook (865469f5)
- Workaround buggy getComputedStyle on table rows in IE/Edge (#4490, 26415e08)
- Don’t automatically add “px” to properties with a few exceptions (#2795, 00a9c2e5)
Core
- Remove obsolete workarounds, update support comments (e2fe97b7)
- Switch
$.parseHTMLfromdocument.implementationtoDOMParser(0e123509) - Fix the exports setup to make bundlers work with ESM & CommonJS (#5416, 60f11b58)
- Add more info about named exports (5f869590)
- Simplify code post browser support reduction (93ca49e6)
- Move the factory to separate exports (46f6e3da)
- Use named exports in
src/(#5262, f75daab0) - Fix regression in jQuery.text() on HTMLDocument objects (#5264, a75d6b52)
- Selector: Move jQuery.contains from the selector to the core module (024d8719)
- Drop the root parameter of jQuery.fn.init (d2436df3)
- Don’t rely on splice being present on input (9c6f64c7)
- Manipulation: Add basic TrustedHTML support (#4409, de5398a6)
- Report browser errors in parseXML (#4784, 89697325)
- Make jQuery.isXMLDoc accept falsy input (#4782, fd421097)
- Drop support for Edge Legacy (i.e. non-Chromium Microsoft Edge) (#4568, e35fb62d)
- Fire iframe script in its context, add doc param in globalEval (#4518, 4592595b)
- Exclude callbacks & deferred modules in the slim build as well (fbc44f52)
- Migrate from AMD to ES modules 🎉 (d0ce00cd)
- Use Array.prototype.flat where supported (#4320, 9df4f1de)
- Remove private copies of push, sort & splice from the jQuery prototype (b59107f5)
- Implement .even() & .odd() to replace POS :even & :odd (78420d42)
- Deprecate jQuery.trim (#4363, 5ea59460)
- Remove IE-specific support tests, rely on document.documentMode (#4386, 3527a384)
- Drop support for IE <11, iOS <11, Firefox <65, Android Browser & PhantomJS (#3950, #4299, cf84696f)
- Remove deprecated jQuery APIs (#4056, 58f0c00b)
Data
- Refactor to reduce size (805cdb43)
- Event:Manipulation: Prevent collisions with Object.prototype (#3256, 9d76c0b1)
- Separate data & css/effects camelCase implementations (#3355, 8fae2120)
Deferred
- Rename
getStackHooktogetErrorHook(#5201, 258ca1ec) - Respect source maps in jQuery.Deferred.exceptionHook (#3179, 0b9c5037)
- Rename master to primary (a32cf632)
Deprecated
- Define
.hover()using non-deprecated methods (fd6ffc5e) - Remove jQuery.trim (0b676ae1)
- Fix AMD parameter order (f810080e)
Dimensions
Docs
- Fix some minor issues in comments (e4d4dd81)
- update herodevs link in README (#5695, 093e63f9)
- Align CONTRIBUTING.md with
3.x-stable(d9281061) - Update CONTRIBUTING.md (4ef25b0d)
- add version support section to README (cbc2bc1f)
- Update remaining HTTP URLs to HTTPS (7cdd8374)
- Fix module links in the package README (ace646f6)
- update watch task in CONTRIBUTING.md (77d6ad71)
- Fix typos found by codespell (620870a1)
- remove stale gitter badge from readme (67cb1af7)
- Remove the “Grunt build” section from the PR template (988a5684)
- Remove stale badge from README (bcd9c2bc)
- Update the README of the published package (edccabf1)
- Remove git.io from a GitHub Actions comment (016872ff)
- Update webpack website in README (01819bc3)
- add link to patchwelcome and help wanted issues (924b7ce8)
- add link to preview the new CLAs (683ceb8f)
- Fix incorrect
trac-NUMBERreferences (eb9ceb2f) - remove expired links from old jquery source (#4997) (ed066ac7)
- Remove links to Web Archive from source (#4981, e24f2dcf)
- Replace
#NUMBERTrac issue references withtrac-NUMBER(5d5ea015) - Update the URL to the latest jQuery build in CONTRIBUTING.md (9bdb16cd)
- Remove the CLA checkbox in the pull request template (e1248931)
- update irc to Libera and fix LAMP dead link (175db73e)
- Update Frequently Reported Issues in the GitHub issue template (7a6fae6a)
- Change JS Foundation mentions to OpenJS Foundation (11611967)
- add SECURITY.md, show security email address (2ffe54ca)
- Fix typos (1a7332ce)
- Update the link to the jsdom repository (a62309e0)
- Use https for hyperlinks in README (73415da2)
- Remove a mention of the event/alias.js module from README (3edfa1bc)
- Update links to EdgeHTML issues to go through Web Archive (1dad1185)
- direct users to GitHub docs for cloning the repo (f1c16de2)
- Change OS X to macOS in README (5a3e0664)
- Update most URLs to HTTPS (f09d9210)
- Convert link to Homebrew from HTTP to HTTPS (e0022f23)
Effect
Effects
- Remove jQuery.fx.interval (6c2c7362)
Event
- Use
.preventDefault()in beforeunload (7c123dec) - Increase robustness of an inner native event in leverageNative (#5459, 527fb3dc)
- Avoid collisions between jQuery.event.special & Object.prototype (bcaeb000)
- Simplify the check for saved data in leverageNative (dfe212d5)
- Make trigger(focus/blur/click) work with native handlers (#5015, 6ad3651d)
- Simulate focus/blur in IE via focusin/focusout (#4856, #4859, #4950, ce60d318)
- Don’t break focus triggering after
.on(focus).off(focus)(#4867, e539bac7) - Make focus re-triggering not focus the original element back (#4382, dbcffb39)
- Don’t crash if an element is removed on blur (#4417, 5c2d0870)
- Remove the event.which shim (#3235, 1a5fff4c)
- remove jQuery.event.global (18db8717)
- Only attach events to objects that accept data – for real (#4397, d5c505e3)
- Stop shimming focusin & focusout events (#4300, 8a741376)
- Prevent leverageNative from registering duplicate dummy handlers (eb6c0a7c)
- Fix handling of multiple async focus events (#4350, ddfa8376)
Manipulation
- Make jQuery.cleanData not skip elements during cleanup (#5214, 3cad5c43)
- Generalize a test to support IE (88690ebf)
- Support $el.html(selfRemovingScript) (#5378) (#5377, 937923d9)
- Extract domManip to a separate file (ee6e8740)
- Don’t remove HTML comments from scripts (#4904, 2f8f39e4)
- Respect script crossorigin attribute in DOM manipulation (#4542, 15ae3614)
- Avoid concatenating strings in buildFragment (9c98e4e8)
- Make jQuery.htmlPrefilter an identity function (90fed4b4)
- Selector: Use the nodeName util where possible to save size (4504fc3d)
Offset
- Increase search depth when finding the ‘real’ offset parent (556eaf4a)
Release
- 4.0.0 (4f2fae08)
- remove dist files from main branch (c838cfb5)
- 4.0.0-rc.2 (97525193)
- Update AUTHORS.txt (c128d5d8)
- Fix release issues uncovered during the 4.0.0-rc.1 release (a5b0c431)
- remove dist files from main branch (9d06c6dd)
- 4.0.0-rc.1 (586182f3)
- Run
npm publishin the post-release phase (ff1f0eaa) - Only run browserless tests during the release (fb5ab0f5)
- Temporarily disable running tests on release (3f79644b)
- publish tmp/release/dist folder when releasing (#5658, a865212d)
- correct build date in verification; other improvements (53ad94f3)
- remove dist files from main branch (be048a02)
- 4.0.0-beta.2 (51fffe9f)
- ensure builds have the proper version (3e612aee)
- set preReleaseBase in config file (1fa8df5d)
- fix running pre/post release scripts in windows (5518b2da)
- update AUTHORS.txt (862e7a18)
- migrate release process to release-it (jquery/jquery-release#114, 2646a8b0)
- add factory files to release distribution (#5411, 1a324b07)
- use buildDefaultFiles directly and pass version (b507c864)
- copy dist-module folder as well (63767650)
- only published versioned files to cdn (3a0ca684)
- remove scripts and dev deps from dist package.json (7eac932d)
- update build command in Release.generateArtifacts (3b963a21)
- add support for md5 sums in windows (f088c366)
- remove the need to install grunt globally (b2bbaa36)
- upgrade release dependencies (967af732)
- Remove an unused chalk dependency (bfb6897c)
- Use an in-repository dist README fixture (358b769a)
- Update AUTHORS.txt (1b74660f)
- update AUTHORS.txt (cf9fe0f6)
Selector
- Remove the workaround for
:has; test both on iPhone & iPad (65e35450) - Properly deprecate
jQuery.expr[ ":" ]/jQuery.expr.filters(329661fd) - Make
selector.jsmodule depend onattributes/attr.js(#5379, e06ff088) - Eliminate
selector.jsdepenencies from various modules (e8b7db4b) - Re-expose jQuery.find.{tokenize,select,compile,setDocument} (#5259, 338de359)
- Stop relying on CSS.supports( “selector(…)” ) (#5194, 68aa2ef7)
- Backport jQuery selection context logic to selector-native (#5185, 2e644e84)
- Make selector lists work with
qSAagain (#5177, 09d988b7) - Implement the
uniqueSortchainable method (#5166, 5266f23c) - Re-introduce selector-native.js (4c1171f2)
- Manipulation: Fix DOM manip within template contents (#5147, 3299236c)
- Drop support for legacy pseudos, test custom pseudos (8c7da22c)
- Use jQuery
:hasifCSS.supports(selector(...))non-compliant (#5098, d153c375) - Remove the “a:enabled” workaround for Chrome <=77 (c1ee33ad)
- Make empty attribute selectors work in IE again (#4435, 05184cc4)
- Use shallow document comparisons in uniqueSort (#4441, 15750b0a)
- Add a test for throwing on post-comma invalid selectors (6eee5f7f)
- Make selectors with leading combinators use qSA again (ed66d5a2)
- Use shallow document comparisons to avoid IE/Edge crashes (#4441, aa6344ba)
- reduce size, simplify setDocument (29a9544a)
- Leverage the :scope pseudo-class where possible (#4453, df6a7f7f)
- Bring back querySelectorAll shortcut usage (cef4b731)
- Inline Sizzle into the selector module (47835965)
- Port Sizzle tests to jQuery (79b74e04)
Support
Traversing
- Fix
contents()on<object>s with children in IE (ccbd6b93) - Fix
contents()on<object>s with children (#4384, 4d865d96)
Zhrnutie: čo si z jQuery 4.0.0 odniesť do praxe
- Je to prvý major release po takmer 10 rokoch – prináša modernizáciu, ale aj breaking changes.
- Podpora pre IE < 11 je preč; ďalšie zúženie (IE11) je plánované až v jQuery 5.0.
- Zlepšenia okolo CSP a Trusted Types uľahčujú život v prísne zabezpečených aplikáciách.
- Zdrojáky prešli na ES modules a build je kompatibilnejší s modernými toolmi (Rollup, bundlery,
<script type=module>). - Odstránené deprecated API a interné Array metódy z prototype môžu vyžadovať drobné úpravy.
- Poradie focus/blur eventov sa mení podľa W3C – otestuj UI, ktoré je na tom závislé.
- Slim build je ešte menší a bez Deferreds/Callbacks – skontroluj závislosti a prípadne zvoľ plný build alebo polyfill pre IE11.
Referencie / Zdroje
- jQuery 4.0.0
- jQuery Upgrade Guide 4.0
- jquery/jquery-migrate
- Full changelog: 4.0.0
- Trusted Types (tweet thread reference)
- TrustedHTML (MDN)
- Switch most async script requests to use <script> tags
- Migrate jQuery source from AMD to ES modules
- Why AMD? (RequireJS docs)
- Rollup introduction
- Plan to remove IE11 support in jQuery 5.0 (PR)
- Download jQuery
- Promises/A+
Peter Kováč
Databázový vývojár a big data inžinier. Optimalizácia SQL a architektúra dátových skladov sú moje hlavné oblasti. V dátach je pravda.
Všetky príspevky