
jQuery â JavaScript-biblioteket i verden. Felleskapet av webutviklere skapte det pĂ„ slutten av 2000-tallet, noe som fĂžrte til en rik Ăžkosystem av nettsteder, plugins og rammeverk som bruker jQuery under panseret.
Men i de siste Ärene har dets status som hovedverktÞy for webutvikling blitt svekket. La oss se pÄ hvorfor jQuery ble populÊrt og hvorfor det er ute av moten, samt i hvilke tilfeller det fortsatt er fornuftig Ä bruke det for Ä lage moderne nettsteder.
Kort historie om jQuery
John Resig () laget den fÞrste versjonen av biblioteket i 2005, og -m pÄ et arrangement kalt BarCampNYC. PÄ skrev forfatteren:
jQuery er et JavaScript-bibliotek, basert pÄ det enkle prinsippet: Det skal vÊre gÞy Ä programmere med JavaScript. jQuery tar vanlige, repeterende oppgaver, fjerner unÞdvendig oppmerking og gjÞr dem korte, elegante og forstÄelige.
jQuery har to hovedfordeler. Den fÞrste er et brukervennlig API for manipulasjon av nettsider. Spesielt gir det kraftige metoder for Ä velge elementer. Du kan velge ikke bare etter ID eller klasser, jQuery lar deg skrive komplekse uttrykk, for eksempel for Ä velge elementer basert pÄ deres relasjoner med andre elementer:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');Over tid ble valgmekanismen til en egen bibliotek .
Den andre fordelen med biblioteket var at det abla forskjellene mellom nettlesere. PÄ den tiden var det vanskelig Ä skrive kode som ville fungere pÄlitelig i alle nettlesere.
Mangelen pÄ standardisering betydde at utviklere mÄtte ta hensyn til de mange forskjellene mellom nettlesere og grense tilfeller. Ta en titt pÄ og se etter jQuery.browser. Her er et av eksemplene:
// If Mozilla is used
if ( jQuery.browser == "mozilla" || jQuery.browser == "opera" ) {
// Use the handy event callback
jQuery.event.add( document, "DOMContentLoaded", jQuery.ready );
// If IE is used, use the excellent hack by Matthias Miller
// http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited
} else if ( jQuery.browser == "msie" ) {
// Only works if you document.write() it
document.write("<scr" + "ipt id=__ie_init defer=true " +
"src=javascript:void(0)></script>");
// Use the defer script hack
var script = document.getElementById("__ie_init");
script.onreadystatechange = function() {
if ( this.readyState == "complete" )
jQuery.ready();
};
// Clear from memory
script = null;
// If Safari is used
} else if ( jQuery.browser == "safari" ) {
// Continually check to see if the document.readyState is valid
jQuery.safariTimer = setInterval(function(){
// loaded and complete are both valid states
if ( document.readyState == "loaded" ||
document.readyState == "complete" ) {
// If either one are found, remove the timer
clearInterval( jQuery.safariTimer );
jQuery.safariTimer = null;
// and execute any waiting functions
jQuery.ready();
}
}, 10);
}Og takket vÊre jQuery kunne utviklerne legge ansvaret for alle disse fallgruvene pÄ skuldrene til teamet som utviklet biblioteket.
Senere gjorde jQuery implementering av mer komplekse teknologier, som animasjoner og Ajax, enklere. Biblioteket ble faktiske standardavhengighet for nettsteder. Og i dag driver det en stor del av internett. W3Techs anslÄr at .
Kontrollen over utviklingen av jQuery ble ogsÄ mer formalisert. I 2011 opprettet teamet . Og i 2012 ble jQuery Board.
I 2015 blei jQuery Foundation ein del av Dojo Foundation,, som deretter slo seg sammen med Node.js Foundation i-en for Ä danne, hvor jQuery var ett av «.»
Endrede omstendigheter
Men de siste Ärene har jQuery . GitHub. Bootstrap v5 , fordi det er dets «» (for Þyeblikket pÄ 30 KB, minifisert og pakket). Flere trender innen webutvikling har svekket jQuerys stilling som et nÞdvendig verktÞy.
Nettlesarar
Av en rekke grunner har forskjeller og begrensninger mellom nettleserne blitt mindre viktige. For det fĂžrste har standardiseringen blitt bedre. De viktigste nettleserutviklerne (Apple, Google, Microsoft og Mozilla) samarbeider om Ă„ utvikle i rammer av.
Selv om nettleserne fortsatt skiller seg fra hverandre pÄ flere viktige punkter, har leverandÞrene i det minste et middel for Ä finne og lage et felles grunnlag i stedet for mot hverandre. FÞlgelig har API-ene i nettleserne fÄtt nye muligheter. For eksempel, kan erstatte Ajax-funksjoner fra jQuery:
// jQuery
$.getJSON('https://api.com/songs.json')
.done(function (songs) {
console.log(songs);
})
// native
fetch('https://api.com/songs.json')
.then(function (response) {
return response.json();
})
.then(function (songs) {
console.log(songs);
});Metoder og dupliserer valgverktĂžyene fra jQuery:
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');à manipulere klassene til elementene kan nÄ gjÞres med :
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');PÄ nettstedet det er listet opp flere situasjoner der jQuery-koden kan erstattes med native kode. Noen utviklere holder alltid fast ved jQuery, fordi de bare ikke kjenner de nye API-ene, men nÄr de fÄr vite om dem, begynner de Ä bruke biblioteket sjeldnere.
à bruke native funksjoner gjÞr det mulig Ä forbedre ytelsen til sidene. Mange kan nÄ implementeres med CSS.
Den andre grunnen er at nettleserne oppdateres mye raskere enn fĂžr. I de fleste brukes , bortsett fra Apple Safari. De kan oppdateres i bakgrunnen uten brukerens involvering og er ikke knyttet til OS-oppdateringer.
Dette betyr at nye muligheter i nettleserne og feilrettinger sprer seg mye raskere, og utviklere trenger ikke Ä vente pÄ at andelen vil nÄ et akseptabelt nivÄ. De kan trygt bruke nye funksjoner og API-er uten Ä mÄtte laste ned jQuery eller polyfills.
Den tredje grunnen er at Internet Explorer nÊrmer seg fullstendig foreldelse. IE har lenge vÊrt et mareritt for webutvikling over hele verden. Dens karakteristiske feil har vÊrt utbredt, og ettersom IE dominerte pÄ 2000-tallet og ikke brukte en 'eviggrÞnn' oppdateringsstrategi, er det stadig gamle versjoner som er i omlÞp.
I 2016 akselererte Microsoft avviklingen av IE, den tiende og eldre versjoner, ved Ă„ begrense stĂžtten til IE 11. Og stadig oftere kan webutviklere tillate seg Ă„ ignorere kompatibilitet med IE.
Til og med jQuery sluttet Ä stÞtte IE 8 og eldre fra , som ble utgitt i 2013. Og selv om det fortsatt er tilfeller hvor stÞtte for IE er nÞdvendig, for eksempel pÄ gamle nettsteder, skjer disse situasjonene sjeldnere.
Nye rammeverk
Siden jQuery ble introdusert, har mange rammeverk blitt utviklet, inkludert moderne ledere , og . De har to viktige fordeler sammenlignet med jQuery.
For det fÞrste gjÞr de det enkelt Ä dele brukergrensesnittet inn i komponenter. Rammeverkene er designet for Ä hÄndtere rendering og oppdatering av siden. jQuery brukes vanligvis kun for oppdatering, og overlater til serveren ansvaret for Ä levere den opprinnelige siden.
PĂ„ den annen side tillater komponentene i React, Angular og Vue en tett sammenkobling av HTML, kode og til og med CSS. Som vi deler kodebasen inn i mange selvforsynte funksjoner og klasser, gjĂžr muligheten for Ă„ dele grensesnittet inn i gjenbrukbare komponenter det lettere Ă„ bygge og vedlikeholde komplekse nettsteder.
Den andre fordelen er at nyere rammeverk fÞlger en deklarativ tilnÊrming, der utvikleren beskriver hvordan grensesnittet skal se ut, og rammeverket tar seg av alle nÞdvendige endringer for Ä oppnÄ det Þnskede resultatet. Denne tilnÊrmingen er i kontrast til den imperativ tilnÊrmingen som er karakteristisk for jQuery-kode.
I jQuery skriver du tydelig ned trinnene for Ă„ gjĂžre endringer. I et deklarativt rammeverk sier du: 'I henhold til disse dataene, bĂžr grensesnittet se slik ut.' Dette kan i stor grad forenkle kode skriving uten feil.
Utviklerne har tatt i bruk nye metoder for nettsideutvikling, noe som har fĂžrt til at populariteten til jQuery har falt.
NÄr bÞr man bruke jQuery?
SÄ nÄr skal vi bÞr bruke jQuery?
Hvis prosjektets kompleksitet Þker, er det bedre Ä begynne med et annet bibliotek eller rammeverk som gir en fornuftig mÄte Ä hÄndtere kompleksitet pÄ, for eksempel ved Ä dele opp grensesnittet i komponenter. Bruken av jQuery pÄ slike nettsteder kan i starten virke akseptabelt, men det vil raskt fÞre til spaghetti-kode, hvor du ikke vet hvilke deler som pÄvirker hvilke deler av siden.
Jeg har vÊrt i en slik situasjon, der ethvert forsÞk pÄ Ä gjÞre en endring fÞles som en vanskelig oppgave. Man kan ikke vÊre sikker pÄ at man ikke Þdelegger noe, fordi jQuery-selektorene er avhengige av HTML-strukturen som serveren har laget.
I den andre enden av skalaen finner vi enkle nettsteder som bare trenger litt interaktivitet eller dynamisk innhold. I slike tilfeller ville jeg heller ikke automatisk bruke jQuery, fordi man kan gjĂžre mye mer med native API-er.
Selv om jeg trenger noe mer kraftfullt, vil jeg se etter et spesialisert bibliotek, for eksempel for Ajax eller for animasjoner. Det vil vÊre enklere enn Ä laste hele jQuery for Ä fÄ liten funksjonalitet.
Jeg tror det beste argumentet for Ä bruke jQuery er at det tilbyr omfattende funksjonalitet for frontend-arbeid pÄ nettstedet. I stedet for Ä lÊre forskjellige native API-er eller spesialiserte biblioteker, kan du bare lese jQuery-dokumentasjonen, og du blir straks produktiv.
Den imperativ tilnÊrmingen skalerer dÄrlig, men er enklere Ä mestre enn den deklarative tilnÊrmingen til andre biblioteker. For et nettsted med klart begrensede muligheter, er det best Ä bruke jQuery og jobbe i fred: Biblioteket krever ingen komplisert bygging eller kompilering.
I tillegg er jQuery nyttig i de tilfellene hvor du er sikker pÄ at nettstedet ikke vil bli mer komplekst over tid, og hvis du ikke er bekymret for native funksjonalitet som helt klart vil kreve mer kode enn jQuery.
Du kan ogsÄ bruke dette biblioteket hvis det er behov for Ä stÞtte eldre versjoner av IE. Da vil jQuery fungere for deg, akkurat som i de tidene da IE var den mest populÊre nettleseren.
Fremtidsblikk
jQuery vil ikkje forsvinne med det fÞrste. Det , og mange utviklere foretrekker Ä bruke API-et, selv om nativemetoder er tilgjengelige. Biblioteket har hjulpet en hel generasjon utviklere med Ä lage nettsteder som fungerer pÄ alle nettlesere. Og selv om mange aspekter har blitt erstattet av nye biblioteker, rammeverk og paradigmer, har jQuery spilt en enormt positiv rolle i Ä skape moderne web.
Hvis funksjonaliteten til jQuery ikke endres vesentlig, er det sannsynlig at bruken av biblioteket vil fortsette Ä avta sakte, men sikkert i lÞpet av de neste Ärene. Nye nettsteder blir vanligvis laget fra bunnen av ved Ä bruke mer moderne rammeverk, og passende bruksomrÄder for jQuery oppstÄr stadig sjeldnere.
Noen liker ikke intensiteten av verktÞyene for webutvikling som blir utdaterte, men for meg er det et tegn pÄ rask fremgang. jQuery har gjort oss i stand til Ä gjÞre mye bedre. Det samme gjelder for dens etterkommere.
Kilde: habr.com
