- jQuery 4.0 je prva večja izdaja v približno 10 letih, predstavljena okoli 20. obletnice knjižnice, in se osredotoča na posodobitev in ne na bleščeče nove funkcije.
- Posodobitev opušča podporo za IE10 in več starejših brskalnikov, usklajuje dogodke fokusa s specifikacijami W3C in znatno zmanjšuje število starih, zastarelih API-jev.
- Izvorna koda jQueryja se je z Rollupom premaknila iz modulov AMD na module ES, izboljšala skladnost CSP z zaupanja vrednimi tipi in dodatno skrčila standardne in tanke različice.
- Kljub sodobnemu JavaScriptu in priljubljenim ogrodjem ostaja jQuery široko uporabljen, mnenja pa so deljena med tistimi, ki ga vidijo kot zapuščino, in tistimi, ki še vedno cenijo njegov jedrnat API.
Po skoraj desetletju brez večje posodobitve, jQuery 4.0 odpira novo poglavje za eno najvplivnejših knjižnic JavaScript na spletu. Ta izdaja, ki je časovno omejena na 20. obletnico predstavitve jQueryja s strani Johna Resiga, ne govori toliko o bleščečih novih trikih, temveč o tem, kako se znebiti zastarele prtljage in uskladiti projekt s tem, kako dejansko gradimo za brskalnike danes.
Namesto da bi se na novo izumil, jQuery 4 želi ostati relevanten z modernizacijo svojega jedra: opustitev podpore za zastarele brskalnike, uporaba modulov ES, izboljšanje varnosti z zaupanja vrednimi tipi in čiščenje dolgo zastarelih API-jev. Rezultat je vitkejša knjižnica, ki se bolj naravno prilega trenutnim orodjem, hkrati pa se še vedno trudi, da ne bi »pokvarila spleta« za ogromno število spletnih mest, ki se nanjo zanašajo.
Velika izdaja, ki je nastajala desetletje
Skok na 4.0 je prva velika nadgradnja različic od serije jQuery 3, ki je prišla po dolgem razvojnem ciklu z beta in predizdajami, ki so se začele v začetku leta 2024. Ekipa jo je opisala kot izdajo, pri kateri so končno uvedli spremembe, ki so si jih želeli leta, vendar jih niso mogli izdati v obliki popravkov ali manjših posodobitev.
Za številko različice se skriva širši mejnik: jQuery obstaja že približno dvajset letKo je John Resig leta 2006 prvič predstavil knjižnico, je bilo delo z DOM-om v brskalnikih, kot so IE, Firefox in Safari, nagnjeno k napakam in dolgočasno. jQuery je hitro postal dejanski način za zglajevanje teh nedoslednosti, zaradi česar so bili selektorji, kot je $("#myspan") zdijo se veliko bolj dostopne kot dobesedne izvorne alternative.
Ta zgodnji uspeh je oblikoval splet. Glede na dolgotrajne tehnološke raziskave, jQuery je še vedno prisoten na veliki večini spletnih mest ki deklarirajo knjižnico JavaScript, čeprav so novejši ogrodji, kot so React, Vue, Angular ali Svelte, prevzeli osrednjo vlogo v številnih projektih na začetku.
Zaradi tako široke uporabe so vzdrževalci večkrat poudarili, da Ne morejo tvegati, da bi po naključju poškodovali obstoječe strani, še posebej ker mnoga spletna mesta nalagajo jQuery neposredno iz javnih CDN-jev. jQuery 4 se zato giblje po tanki črti: uvaja kritične spremembe, vendar je zasnovan tako, da se večina projektov lahko nadgradi z omejenimi spremembami, pri čemer pomagata uradni vodnik za nadgradnjo in osvežen vtičnik jQuery Migrate.
Konec poti za IE10 in druge starejše brskalnike
Ena najbolj vidnih odločitev v tej izdaji je, da Internet Explorer 10 in starejši niso več podprtiTa poteza je bila pričakovana že leta, vendar je jQuery 4 različica, ki končno preseka to vrvico, kar odraža, kako malo uporabe teh brskalnikov opažajo v sodobni analitiki, in spodbuja ekipe, da ... zaznavanje uporabe brskalnika.
Zgodba o ukinitvi je razdeljena na faze: IE 11 še vedno deluje z jQuery 4, vendar je ekipa že nakazala, da bo v jQuery 5 opuščen. To daje organizacijam s strogimi omejitvami za starejše različice nekaj manevrskega prostora, hkrati pa jasno kaže, da se doba IE bliža koncu.
Približno v IE so še nadaljnja zmanjšanja: Edge Legacy (pred Chromiumom) izgine iz matrike podpore, skupaj s starim brskalnikom Android in starejšimi generacijami iOS in Firefoxa. V obsegu ostaja le nekaj zadnjih različic teh brskalnikov ter Firefox ESR. Pričakuje se, da bodo projekti, ki morajo resnično podpirati takšna okolja, ostali na liniji 3.x.
Obrezovanje tega seznama brskalnikov ne samo poenostavi testiranje v različnih brskalnikih; Prav tako odstrani precejšnje dele kode za združljivostTo neposredno prispeva k manjši velikosti datoteke jQuery 4, še posebej, ko so veje, specifične za Internet Explorer, odstranjene.
Varnost: Zaupanja vredne vrste in strožja usklajenost CSP-jev
Poleg podpore za brskalnike jQuery 4 odgovarja tudi na sodobna varnostna pričakovanja pri velikih produkcijskih uvedbahŠtevilne organizacije se zdaj močno zanašajo na pravilnik o varnosti vsebine (CSP), da bi zmanjšale izpostavljenost napadom medspletnega skriptanja (XSS), notranjost jQueryja pa je potrebovala posodobitve, da bi se pravilno obnašala pod strožjimi pravili.
Sprememba naslova je podpora za zaupanja vredne tipeKo spletno mesto uveljavlja pravilnike, kot so require-trusted-types-for 'script', samo vrednosti, zavite v določene zaupanja vredne tipe (kot so TrustedHTML) se lahko vbrizga v občutljive DOM-odvode. Starejše različice jQuery so lahko nenamerno kršile te omejitve v nekaterih poteh API-ja, kar je povzročalo napetosti za ekipe, ki so poskušale izboljšati svoj CSP.
Z različico 4.0, Vsebino HTML, zavito kot TrustedHTML, je zdaj mogoče posredovati v jQueryjeve metode manipulacije DOM-a. brez sproženja kršitev pravilnikov. Knjižnica je bila revidirana, tako da, kjer je to mogoče, deluje z zaupanja vrednimi tipi namesto da bi se z njimi borila.
Druga povezana sprememba vpliva na asinhrono nalaganje skriptov. jQuery zdaj raje ustvarja standardne <script> oznake za številne zahteve asinhronih skriptov, namesto da bi se zanašali na vgrajene konstrukcije. Ta premik pomaga preprečiti napake CSP v nastavitvah, ki prepovedujejo vgrajeni JavaScript, kar je vse pogostejše v utrjenih uvedbah.
Od AMD do ES modulov in nov cevovod za gradnjo
Pod pokrovom jQuery 4 sprejema ES moduli kot njegova primarna oblika modulov, s čimer je za seboj pustil starejšo strukturo AMD, ki je dolgo časa poganjala njegovo verigo gradnje. To projekt usklajuje s standardnim sistemom modulov, na katerem temelji sodobni JavaScript.
Namesto RequireJS projekt zdaj uporablja Združevanje za združevanje izvorne kode modula ESZa ekipe, ki integrirajo jQuery v sodobne verige orodij, to pomeni, da se knjižnica bolj naravno prilega drugim odvisnostim, ki temeljijo na ESM, in jo je mogoče uporabljati neposredno prek <script type="module"> kjer je to primerno.
Prilagojeni so bili tudi testi: Modularna različica se izvaja samostojno, tako da je mogoče težave, specifične za gradnjo ESM, odkriti zgodaj. To je še posebej pomembno za razvijalce, ki želijo uvoziti le dele jQuery v prilagojenih paketih ali ki standardizirajo svojo kodno bazo okoli semantike ESM.
Distribucija se z operativnega vidika ni bistveno spremenila. Nova različica je na voljo prek uradnega jQuery CDN in prek npm, pri čemer ga CDN-ji drugih ponudnikov običajno sčasoma poberejo. Za obstoječe cevovode CI ali procese uvajanja to pomeni minimalno trenje pri prehodu s prejšnje izdaje 3.x na nove gradnje.
Dolg seznam odstranjenih in zastarelih API-jev
Medtem ko so prejšnje manjše izdaje razvijalce nežno odvrnile od starih vzorcev, jQuery 4 končno odstrani številne API-je, ki so bili leta označeni kot zastareli.Cilj je uporabiti vgrajene funkcije JavaScripta, ki jih že ponuja vsak podprt brskalnik.
Med odstranitvami so komunalne storitve, kot so jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumberin jQuery.cssPropsTe funkcije so prvotno zapolnjevale vrzeli v nedoslednih implementacijah brskalnikov, vendar v veliki meri podvajajo tisto, kar zdaj ponuja sam jezik.
V praksi, Pričakuje se, da bodo kodne baze te pomočnike zamenjale z njihovimi izvornimi ekvivalenti.: Array.isArray() namesto jQuery.isArray, JSON.parse() Kje jQuery.parseJSON nekoč, String.prototype.trim() nadomešča jQuery.trimin Date.now() za jQuery.now, med drugim. Selitev v to smer ponavadi naredi kodo bolj prenosljivo in manj vezano na vedenje, specifično za jQuery.
Na notranji strani, metode polja, kot so push, sortin splice so bili odstranjeni iz prototipa jQueryTo so bili dejansko notranji pomočniki, ki so bili po naključju razkriti, njihova odstranitev pa pojasnjuje, da bi morali razvijalci zbirke jQuery obravnavati drugače kot navadne tabele, tudi če imajo včasih površinske podobnosti.
Vse to čiščenje, skupaj z odpravo posebnih primerov kode za starejše različice Internet Explorerja, zmanjša velikost knjižnice za več kot 3 kilobajte v gzip oblikiZa spletna mesta, ki jim je mar za vsak kilobajt, je to nepomemben prihranek, še posebej v kombinaciji z drugimi optimizacijami.
Standardna gradnja, ozka gradnja in zmanjšanje velikosti datotek
Velikost datoteke je bila vedno del pogovorov o jQueryju in Različica 4 nadaljuje trend vitkejšega jedraZmanjšana standardna različica zdaj tehta nekaj manj kot 80 KB, v primerjavi s približno 88 KB za jQuery 3.7.1.
Naš Slim build je namenjen okoljem, ki ne potrebujejo podpore za Ajax ali animacijeZ odstranitvijo teh modulov se slim različica jQuery 4 še bolj zmanjša, saj v enem poročilu znaša približno 56 KB, v drugem pa približno 19.5 KB v gzip formatu, odvisno od tega, katere metrike in podrobnosti stiskanja si ogledate. Kakor koli že, smer je jasna: manj podedovanega, manjši paketi.
Poleg Ajaxa in animacije, vitka zgradba tudi izpušča odložene in povratne klice v novi izdaji. Glede na to, da so izvorne obljube zdaj dobro podprte v vseh ciljnih brskalnikih razen v IE11, je bila ekipa prepričana, da se lahko večina asinhronih vzorcev neposredno zanaša na vgrajene jezikovne primitive.
Razvijalci, ki imajo raje celotno površino API-ja, se lahko še vedno odločijo za standardno gradnjo, vendar projekti, ki želijo zmanjšati koristne obremenitve, imajo več možnosti kot prejZ vse bolj strogimi proračuni za učinkovitost delovanja, zlasti na mobilnih napravah, je možnost izbire okrnjene različice praktična prednost.
Dogodka ostrenja in zameglitve zdaj sledita specifikaciji W3C
Ena od subtilnejših, a vplivnih vedenjskih sprememb v jQuery 4 vključuje dogodki fokusiranja in zameglitve na elementih uporabniškega vmesnikaV preteklosti se brskalniki niso strinjali glede natančnega vrstnega reda sprožitve teh dogodkov, kar je vodilo do težko sledljivih nedoslednosti.
Da bi se s tem spopadli, Starejše različice jQuery so preglasile izvorni vrstni red dogodkov zagotoviti enotno zaporedje, tudi če je to pomenilo odstopanje od razvijajočih se standardov. Razvijalci so gradili kodo na podlagi teh predpostavk, pogosto brez zavedanja, da se vedenje razlikuje od tistega, kar so brskalniki postopoma standardizirali.
Zdaj, ko specifikacija W3C določa dosledno vrstni red za focus, focusin, focusout in blur, sodobni brskalniki so se večinoma osredotočili na ta model. V odgovor jQuery 4 odstrani svojo staro logiko preglasitve in pusti, da prevlada vrstni red dogodkov na izvornem v vseh podprtih brskalnikih, kar je v skladu s trenutnimi specifikacijami.
Prednost je, da vedenje postane bolj predvidljivo v celotnem ekosistemuSlaba stran je, da se lahko koda, ki se je zanašala na prejšnje urejanje jQueryja, zdaj obnaša drugače, kar lahko povzroči nepričakovane robne primere v obrazcih ali kompleksnih interakcijah uporabniškega vmesnika. To je eno od področij, kjer je lahko izvajanje testov in uporaba posodobljenega vtičnika jQuery Migrate med nadgradnjami še posebej koristna.
Vitkejša knjižnica, vendar se vsi ne strinjajo z njeno vlogo
Kot pri vsaki dolgoživi tehnologiji, Mnenja o mestu jQueryja leta 2026 so ostro deljenaZa nekatere razvijalce je sklep preprost: če začenjate povsem novo spletno aplikacijo, namenjeno sodobnim brskalnikom, se zdi, da sploh ni razloga za uvedbo jQueryja.
Kritiki pogosto opozarjajo na skrbi glede učinkovitosti in odvisnostiIzvorni JavaScript je običajno hitrejši in se izogne dodajanju več deset kilobajtov knjižnične kode. Starejše različice jQuery prav tako pogosto ostajajo nepopravljene na produkcijskih spletnih mestih, pri čemer precejšen delež spleta še vedno uporablja desetletje stare izdaje 2.x.
Na drugi strani razprave mnogi praktiki trdijo, da jQuery ostaja učinkovito in pragmatično orodje v vsakdanjem deluMedtem ko ogrodja, kot sta React ali Vue, prevladujejo v velikih enostraničnih aplikacijah, je jQuery lahko preprostejša izbira za postopne izboljšave, klasična večstranska spletna mesta ali hitre prototipe, kjer se zdi ustvarjanje celotnega cevovoda komponent pretirano.
Še vedno obstajajo razvijalci, ki opisujejo jQuery kot ena redkih knjižnic JavaScript, ki je dosledno prijetna za uporabo, zlasti za manipulacijo DOM-a in obravnavo dogodkov. Njegova jedrnata sintaksa, verižne metode in dolgo uveljavljeni idiomi lahko zmanjšajo število standardnih skriptov in ohranijo berljive majhne skripte.
Zaradi tega kontrasta perspektiv je verjetno, da bo jQuery 4 interpretiran na različne načine: kot elegantno posodobitev starega orodja s strani nekaterih in kot minimalno vzdrževalno izdajo za usihajočo dobo s strani drugihResničnost je, da se mnoga proizvodna mesta še naprej zanašajo nanj, ne glede na to, ali je vključen v nove predloge projektov.
Uporaba v resničnem svetu: kdaj jQuery še vedno prihrani čas
Poleg abstraktnih argumentov zgodbe iz vsakdanjega razvoja kažejo, kako jQuery lahko še vedno reši določene težave z zelo malo kodeEn primer vključuje izdelavo animiranih, preklopnih polj obrazca, kjer se nekateri vnosi prikažejo le, če so drugi izbrani ali označeni.
V tem primeru, Razvijalec je sprva poskušal ustvariti vedenje z navadnim JavaScriptom, žongliranje z več poslušalci dogodkov, prehodi CSS in težavami s časom. Po več poskusih je skript narasel na več kot petdeset vrstic in je še vedno trpel zaradi tekmovalnih pogojev, zaradi katerih so se animacije konfliktirale ali sprožile v napačnem vrstnem redu.
Na koncu je zmagala frustracija in jQuery 4 je bil dodan kot odvisnostZ uporabo pripomočkov za obdelavo dogodkov in animacijo je bil isti učinek ponovljen v le nekaj vrsticah kode. Kompromis je bil preprost: dodatna knjižnica velikosti ~80 KB v zameno za veliko enostavnejšo implementacijo in možnost prehoda na druge funkcije.
Scenariji, kot je ta, poudarjajo, zakaj Dolgoletno geslo knjižnice »piši manj, naredi več« še vedno odmeva pri nekaterih ekipahTudi v dobi izvornih API-jev in dovršenih ogrodji so trenutki, ko je majhen skript, obogaten z jQuery, hitrejši za izdelavo in lažji za vzdrževanje kot popolnoma prilagojena rešitev.
Seveda to ne pomeni, da ima vsak projekt koristi od vključitve jQueryja. Sodobni API-ji za JavaScript in DOM so bolj dosledni kot nekočStandardi , HTML5 in ECMAScript so zmanjšali težave z delovanjem med brskalniki, za številne enostranične aplikacije pa bi bil morda bolj primeren ogrodje ali pa sploh nobena knjižnica. Bistvo ni toliko v tem, da je jQuery univerzalno potreben, temveč bolj v tem, da ostaja uporabna možnost, ko se problem in omejitve ujemata.
Od bistvene abstrakcije do vloge standardne knjižnice
Da bi razumeli, zakaj se jQuery 4 osredotoča na zožitev in ne na prenovo, si je dobro zapomniti kako drugačna je bila pokrajina, ko se je pojavila knjižnicaPred dvema desetletjema so se brskalniki pogosto razlikovali v interpretaciji vedenja JavaScripta in DOM-a, zaradi česar so se celo osnovne interakcije zdele krhke.
V tem okolju, jQuery ni bil res neobvezen za številne ekipe. Združil je klice Ajaxa, izbiro DOM-a, obdelavo dogodkov in animacijo v dosleden API, kar je razvijalcem omogočilo zaupanje, da se bo koda obnašala podobno v brskalnikih IE, Firefox, Safari in kasneje Chrome. Ta doslednost je bila ključnega pomena v času, ko je Microsoft pogosto sledil lastnim idejam z Internet Explorerjem in pričakoval, da bodo drugi sledili.
Od takrat so se organi za standardizacijo in prodajalci brskalnikov združili v HTML5, sodobne različice ECMAScript in veliko boljša poravnava med brskalnikiChromeov mehanizem in njegovi derivati prevladujejo na trgu, osnovne zmogljivosti brskalnikov pa so veliko višje kot takrat, ko se je jQuery prvič razširil v krogih razvijalcev.
Posledično se jQuery danes manj osredotoča na obvladovanje nezdružljivosti in bolj na deluje kot priročna, znana "standardna knjižnica" na vrhu JavaScriptaNjegov slog veriženja funkcij in jedrnati idiomi spodbujajo sproščen, skoraj funkcionalen način strukturiranja kode, ki temelji na DOM-u, čeprav osnovni jezik ni zgolj funkcionalen.
Za razvijalce, ki so poznali le sodobna orodja, Globino vpliva jQueryja je enostavno spregledatiŠtevilni vzorci, ki jih je knjižnica uvedla ali popularizirala, so bili vključeni nazaj v jezik in same DOM API-je. V tem smislu jQuery 4 ne poskuša toliko povrniti izgubljenega ozemlja, temveč ohraniti knjižnico usklajeno z ekosistemom, ki je zrasel okoli nje.
Spremembe v jQuery 4.0.0 – od opustitve IE10 do uvedbe modulov ES, zaupanja vrednih tipov in ožjega nabora API-jev – skupaj odražajo projekt, ki se zavestno razvija, ne da bi pri tem opustil milijone spletnih mest, ki so še vedno odvisna od njegaIzdaja ne poskuša neposredno konkurirati sodobnim ogrodjem, vendar ekipam, ki še naprej uporabljajo jQuery, ponuja različico, ki se v današnjem okolju brskalnikov in orodij počuti kot doma, hkrati pa pušča vrata odprta za postopno migracijo, kjer je to smiselno.
