Liigu sisu juurde
jQuery 4.0.0 on kohal: mida see päriselt muudab ja kuidas turvaliselt uuendada
Martin Kask
Martin Kask 19. January 2026 · 10 min lugemist

jQuery 4.0.0 on kohal: mida see päriselt muudab ja kuidas turvaliselt uuendada

14. jaanuaril 2006 tutvustas John Resig New Yorgi BarCampil jQuery’d. 20 aastat hiljem on jQuery tiim jõudnud välja lõpliku jQuery 4.0.0 väljalaskeni – esimene suurversioon pea 10 aasta jooksul. See on hea uudis kõigile, kellel on päriselus endiselt päris palju jQuery’d (ka WordPressi/pluginate maailmas), aga see tähendab ka üht: 4.0 toob kaasa breaking changes ja enne “lihtsalt versiooni tõstmist” tasub detailid üle käia.

jQuery 4.0.0 arendus oli pikk ning enne finaali nägime mitut eelväljalaset. Tiimi fookus oli selgelt moderniseerimisel: pärandi maha lõikamine, aastaid “nii on alati olnud” tüüpi erandite eemaldamine, ning paremini tänapäevaste turvapoliitikatega sobitumine. Samas on sõnum üsna praktiline: enamiku projektide jaoks peaks üleminek siiski olema tehtav väikeste muudatustega.

Üleminekut aitavad kaks ametlikku tööriista/ressurssi: upgrade guide ja jQuery Migrate plugin release. Kui uuenduse käigus midagi katki läheb, palub tiim probleemid raporteerida GitHubi issue trackerisse: https://github.com/jquery/jquery/issues.

Kuidas jQuery 4.0 kätte saada (CDN, npm)

jQuery 4.0.0 on saadaval nii jQuery enda CDN-is kui ka npm-is. Kolmandate osapoolte CDN-id (nt erinevad “public CDN”-id) jõuavad tavaliselt järele, aga nende väljalaske ajakava jQuery tiim ei kontrolli – seega võib seal olla väike viide.

  • CDN (täisversioon): https://code.jquery.com/jquery-4.0.0.js
  • CDN (min): https://code.jquery.com/jquery-4.0.0.min.js
  • npm: npm install jquery@4.0.0

Slim build (kergem jQuery)

jQuery 4.0.0-ga on slim build veel väiksem. Mõte on lihtne: kui sul pole vaja ajax’i või kasutad eraldi ajax-teeki, animatsioonid teed CSS-i ja class’ide abil ning (peaaegu) kõigis toetatud brauserites on native Promise olemas, siis saab jQuery’st välja jätta terve port mooduleid.

Slim build’ist on 4.0.0-s eemaldatud Deferreds ja Callbacks ning tulemuseks on umbes 19.5k bytes gzipped. Deferred on ajalooliselt toetanud Promises A+ standardit, seega enamikes kohtades saab liikuda native Promise’i peale. Deferred’il on siiski lisavõimekusi, mida native Promise ei paku, kuid suurem osa kasutusest on migreeritav Promise meetoditega.

Kui pead toetama IE11

Native Promise ei ole jQuery 4.0 toetatud brauseritest saadaval IE11-s. Kui IE11 on sul endiselt nõue, kasuta pigem jQuery põhiversiooni (mitte slim) või lisa native Promise polyfill.

  • CDN (slim): https://code.jquery.com/jquery-4.0.0.slim.js
  • CDN (slim min): https://code.jquery.com/jquery-4.0.0.slim.min.js

jQuery tiim märgib, et värskendused on juba “current versions” nii npm-is kui ka Boweris. Kõik ametlikud hankimisviisid: https://jquery.com/download/.

Suurimad muudatused jQuery 4.0.0-s

1) IE < 11 tugi eemaldati (IE10 ja vanemad)

jQuery 4.0 jätab maha IE10 ja vanemad. Paljud küsivad loogiliselt: miks mitte ka IE11? Tiimi plaan on teha see etappide kaupa ning järgmine samm – IE11 toe eemaldamine – on plaanitud jQuery 5.0 juurde (viide: https://github.com/jquery/jquery/pull/5077). Praegu eemaldati kood, mis oli spetsiaalselt vajalik IE versioonidele, mis on vanemad kui 11.

Lisaks lõigati ära tugi tervele reale väga vanadele brauseritele: Edge Legacy, iOS versioonid varasemad kui viimased 3, Firefox versioonid varasemad kui viimased 2 (v.a Firefox ESR), ning Android Browser. Tiimi sõnul ei peaks see nõudma sinu koodis muudatusi. Kui aga sul on kohustus mõnda neist brauseritest toetada, siis praktiline soovitus on jääda jQuery 3.x peale.

2) Trusted Types ja CSP: vähem XSS-peavalu, vähem CSP vigu

jQuery 4.0 lisab toe Trusted Types-ile – see on brauseri turvamehhanism, mis aitab XSS-i riski vähendada, kui kasutad ranget Content Security Policy’t. Konkreetsemalt: kui HTML on pakitud TrustedHTML objekti (MDN: https://developer.mozilla.org/en-US/docs/Web/API/TrustedHTML), siis saab seda kasutada jQuery manipuleerimismeetodite sisendina nii, et see ei rikuks require-trusted-types-for CSP direktiivi.

Sellega koos muudeti ka käitumist asünkroonsete script request’idega: varem kasutati osadel juhtudel <script> tag’i, et säilitada atribuute nagu crossdomain, nüüd on tiim enamiku asünkroonsete script request’ide puhul liikunud teadlikult <script> tag’i peale (PR: https://github.com/jquery/jquery/pull/4763), et vältida CSP vigu, mida inline script’ide kasutus võib põhjustada.

On siiski erandeid, kus asünkroonse scripti laadimisel kasutatakse endiselt XHR-i – näiteks siis, kui annad "headers" valiku. Tiim paneb siia konkreetse soovituse: kasuta scriptAttrs-i (mitte headers), ning jQuery kasutab võimalusel <script> tag’i.

3) jQuery lähtekood kolis AMD-st ES module’itesse

Üks suuremaid “tänapäevastamise” samme on see, et jQuery main haru lähtekood migreeriti AMD-st (taust: https://requirejs.org/docs/whyamd.html) ES modules’isse (PR: https://github.com/jquery/jquery/pull/4541). jQuery lähtekood on ammu olnud npm-is ja GitHubis avalik, kuid varem ei saanud seda otse module’ina importida ilma RequireJS-ita (jQuery varasem build tool).

Pakendamiseks on nüüd kasutusel Rollup (https://rollupjs.org/introduction/) ning testid jooksevad ES module’ite peal eraldi. Praktikas tähendab see paremat ühilduvust modernsete build tool’idega, tänapäevaste workflow’dega ning võimalust kasutada brauseris <script type=module>.

4) Deprecated API-d eemaldati (ja mida nende asemel kasutada)

Mitmed funktsioonid olid deprekeeritud juba mitu versiooni ning 4.0 suurversioonis tõmmati neil lõpuks pistik seinast. Need olid kas algusest peale mõeldud sisemiseks kasutuseks või on neil nüüd natiivsed ekvivalendid kõigis jQuery 4.0 toetatud brauserites.

  • 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

Asendused on enamasti otse natiivsed: Array.isArray(), JSON.parse(), String.prototype.trim(), Date.now() jne.

Huvitav kõrvalmõju: deprecated API-de eemaldus koos vana IE toe eemaldamisega vähendas jQuery mahtu rohkem kui 3k bytes gzipped.

5) jQuery prototüübilt kadusid sisemised Array meetodid (push/sort/splice)

jQuery prototüübil olid ammu olemas Array meetodid, mis ei käitunud nagu “tavalised” jQuery chain’itavad meetodid ning olid mõeldud sisekasutuseks. Konkreetselt: push, sort ja splice. jQuery 4.0-s eemaldati need prototüübilt täielikult.

Kui sul oli (soovitatust hoolimata) kuskil kood, mis tegi midagi stiilis $elems.push( elem ), siis ametlik asendus on:

// varem (jQuery < 4):
// $elems.push( elem )

// jQuery 4 alternatiiv:
[].push.call( $elems, elem );

6) Focus/blur event’ide järjekord on nüüd W3C spec’i järgi

Aastaid oli probleem selles, et brauserid ei olnud nõus, mis järjekorras focus ja blur event’id päriselt tulevad (sh focusin, focusout, focus, blur). Tänaseks on kõik brauserid, mida jQuery 4.0 toetab, koondunud ühtse järjekorra peale. Paraku erineb see jQuery ajalooliselt “ühtlustatud” järjekorrast, seega on tegemist breaking change’iga.

Alates jQuery 4.0-st jQuery ei override’i enam natiivset käitumist. See tähendab, et kõik brauserid peale IE järgivad hetkelist W3C spetsifikatsiooni:

  1. blur
  2. focusout
  3. focus
  4. focusin

Varasem jQuery järjekord oli: focusout, blur, focusin, focus. Iroonilisel kombel oli ainus brauser, mis järgis vana W3C spec’i (enne 2023 uuendust), Internet Explorer.

7) Slim build muutus veel “slimmer” (Deferreds ja Callbacks väljas)

Kuigi tänapäeval on harva olukord, kus jQuery failisuurus on otsene pudelikael, on slim build ikkagi umbes 8k gzipped bytes väiksem kui täisversioon. jQuery 4.0.0-s muutus slim build veel väiksemaks tänu Deferreds/Callbacks eemaldamisele (vt ülal) ning fookus on native Promise’i kasutamisel.

Mida üleminekul praktiliselt jälgida

Kui su koodibaas on suur (või sõltud pluginatest, mida sa ise ei halda), siis jQuery 4.0 puhul tasub teha upgrade pigem kontrollitult:

  1. Loe ametlik “Upgrade Guide” läbi: https://jquery.com/upgrade-guide/4.0/
  2. Lisa vajadusel jQuery Migrate: https://github.com/jquery/jquery-migrate/ (see aitab tuvastada ja ajutiselt siluda vanu mustreid).
  3. Kui sul on brauseri tuginõuded (IE10/Edge Legacy/Android Browser jne), kinnita need üle: jQuery 4.0 neid ei kata, vajadusel jää jQuery 3.x peale.
  4. Kui sul on range CSP (eriti require-trusted-types-for), testi hoolikalt HTML-i manipuleerimisi ja script-laadimist.
  5. Otsi koodist eemaldatud API kasutust (nt jQuery.trim, jQuery.parseJSON, jQuery.isArray) ja asenda natiivsete ekvivalentidega.
  6. Kontrolli fokuseerimisega seotud loogikat (formid, modaalid, custom input komponendid): event’ide järjekord muutus.
  7. Kui kasutad “slim” build’i, tee kindlaks, et sul pole sõltuvusi Deferreds/Callbacks’i või ajaxi osas; IE11 puhul planeeri Promise polyfill või kasuta täisbuild’i.
  8. Kui midagi läheb katki ja tundub jQuery bug, raporteeri: https://github.com/jquery/jquery/issues

Changelog’i tipud: mis on 4.0 all kapoti all muutunud

Allpool on jQuery 4.0.0 muudatuste nimekiri moodulite kaupa (changelog’i “highlight” stiilis, aga detailne). Täielik võrdlus 3.7.1 → 4.0.0: Full changelog: 4.0.0.

Ajax

  • Don’t treat array data as binary (992a1911)
  • Allow processData: true even for binary data (ce264e07)
  • Support binary data (including FormData) (a7ed9a7b)
  • Support headers for script transport even when cross-domain (#5142, 6d136443)
  • Support null as success functions in jQuery.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.js wrapper (53cf7244)
  • Make the reliableTrDimensions support test work with Bootstrap CSS (#5270, 65b85031)
  • Make offsetHeight( true ), etc. include negative margins (#3982, bce13b72)
  • Return undefined for 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 & toggle methods 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 $.parseHTML from document.implementation to DOMParser (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

Deprecated

  • Define .hover() using non-deprecated methods (fd6ffc5e)
  • Remove jQuery.trim (0b676ae1)
  • Fix AMD parameter order (f810080e)

Dimensions

  • Add offset prop fallback to FF for unreliable TR dimensions (#4529, 3bbbc111)

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-NUMBER references (eb9ceb2f)
  • remove expired links from old jquery source (#4997) (ed066ac7)
  • Remove links to Web Archive from source (#4981, e24f2dcf)
  • Replace #NUMBER Trac issue references with trac-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

  • Fix a unnecessary conditional statement in .stop() (#4374, 110802c7)

Effects

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 publish in 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.js module depend on attributes/attr.js (#5379, e06ff088)
  • Eliminate selector.js depenencies 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 qSA again (#5177, 09d988b7)
  • Implement the uniqueSort chainable 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 :has if CSS.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

  • ensure display is set to block for the support div (#4832, 09f25436)

Traversing

  • Fix contents() on <object>s with children in IE (ccbd6b93)
  • Fix contents() on <object>s with children (#4384, 4d865d96)

20. sünnipäev ja väike ajalooline hetk

jQuery 4.0.0 postitus sündis sümboolselt tiimi kokkutulekul Dallas’es – jQuery 20. sünnipäeva puhul. John Resig liitus ka Zoomi kaudu ning väljalase avaldati sisuliselt “koos olles”.

jQuery tiimi 20. sünnipäeva kokkutuleku grupipilt
jQuery 20th Birthday reunion Dallas’es (John Resig liitus Zoomi kaudu). — Forrás: Official jQuery Blog (blog.jquery.com)

Kokkuvõte

jQuery 4.0.0 on moderniseeriv suurversioon, mis lõikab ära suure osa pärandist (IE < 11 ja muud vanad brauserid), eemaldab ammu deprekeeritud API-d ning teeb olulisi samme turvalisuse ja tänapäevaste build-workflow’de suunas (Trusted Types/CSP, ES modules, Rollup). Üleminek on enamiku koodibaaside jaoks realistlik, aga tasub teha teadlikult: loe upgrade guide’i, kasuta Migrate’i ja testi eriti event’ide (focus/blur) ning CSP-ga seotud osi.

Liitu HelloWP kogukonnaga!

Vestle meiega WordPressist ja veebiarendusest ning jaga kogemusi teiste arendajatega.

- liiget
- võrgus
Liitu

Kasutame küpsiseid teie kogemuse parandamiseks. Jätkates nõustute meie Küpsiste poliitikaga.