Lähes 10 vuotta 3.0-haaran julkaisun ja 20 vuotta projektin perustamisen jälkeen jQuery 4.0 JavaScript -kirjasto on julkaistu. W3Techsin mukaan sitä käyttää 70.9 % kymmenestä miljoonasta eniten vierailluimmasta verkkosivustosta. jQuery-koodi jaetaan MIT-lisenssillä.
jQuery 4.0 -julkaisu sisältää muutoksia, jotka rikkovat taaksepäin yhteensopivuuden, mutta kehittäjät vakuuttavat useimmille käyttäjille, että he voivat siirtyä uuteen versioon sujuvasti ja tehdä vain vähän muutoksia koodiinsa. Siirtymistä voidaan yksinkertaistaa erillisellä laajennuksella. Taaksepäin yhteensopivuusongelmiin kuuluvat vanhentuneen koodin poistaminen, joidenkin sisäisten dokumentoimattomien parametrien poistaminen, joidenkin liian monimutkaisten toimintojen vanhentuminen ja aiemmin vanhentuneiden API-rajapintojen vanhentuminen. Vanhentuneiden API-rajapintojen ja selainten poistaminen on pienentänyt kirjaston sisältävän gzip-arkiston kokoa 3 kt:lla (ohut versio vie nyt 19.5 kt ja täysversio 27.5 kt).
Muutosten joukossa:
- IE 10:n ja vanhempien selainten tuki on lopetettu (IE 11:n tuki säilyy, mutta se poistetaan Query 5.0:ssa), samoin kuin muiden vanhempien selainten, kuten Edge Legacyn, tuki. Android Selain ja Firefox haaraan 115 asti.
- Trusted Types API:n tuki on sisäänrakennettu. Tämä API on suunniteltu suojaamaan DOM-manipulaatioilta, jotka johtavat sivustojenväliseen komentosarjahyökkäykseen (DOM XSS). Näitä ovat esimerkiksi käyttäjän toimittamien tietojen virheellinen käsittely eval()-lohkoissa tai ".innerHTML"-lisäyksissä, jotka voivat johtaa JavaScript-koodin suorittamiseen tietyn sivun kontekstissa. jQuery-metodit voivat nyt hyväksyä HTML-koodia TrustedHTML-objektien muodossa.
- jQuery-koodi on muunnettu käyttämään ESM (ECMAScript Module) JavaScript-moduuleja, ja se voidaan toimittaa ja tuoda moduulina.
- Seuraavat funktiot on poistettu ja aiemmin merkitty vanhentuneiksi: jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps ja jQuery.fx.interval. Näiden funktioiden sijaan on suositeltavaa käyttää JavaScriptin vakiofunktioita Array.isArray(), JSON.parse(), String.prototype.trim() ja Date.now().
- Poistettu Array-objektin dokumentoimattomat sisäiset metodit - push, sort ja splice.
- Tarkennuksen muutostapahtumien käsittelyjärjestys on saatettu W3C-spesifikaation mukaiseksi – sumennus, tarkennus pois, tarkennus ja tarkennus sisään.
- Slim-version, joka ei sisällä ajax- ja efektimoduuleja, kokoa on pienennetty 19.5 kilotavuun lopettamalla viivästettyjen objektien (suositellaan vakiolupausten käyttöä) ja takaisinkutsujen toimitus.
Lähde: opennet.ru
