
jQuery — JavaScript'i raamatukogu. Veebiarendajate kogukond lõi selle 2000. aastate lõpus, mis viis rikkaliku ökosüsteemi, mille hulka kuuluvad saidid, pistikprogrammid ja raamistikud, mis kasutavad jQuery't.
Kuid viimastel aastatel on selle staatuse peamise veebiarendamise tööriistana kõigutatud. Vaatame, miks jQuery sai populaarseks ja miks see on moest välja läinud, samuti millal on paradoksaalselt endiselt mõistlik seda kasutada kaasaegsete saitide loomisel.
jQuery lühike ajalugu
John Resig () lõi raamatukogu esimese versiooni 2005. aastal ja aastal üritusel nimega BarCampNYC. jQuery kiri ütles:
jQuery — see on JavaScripti raamatukogu, mille põhitees on: JavaScripti programmeerimine peab olema nauditav. jQuery võtab sagedased, korduvad ülesanded, kõrvaldab kogu tarbetu markeeringu ning muudab need lühemaks, elegantsemaks ja arusaadavamaks.
jQuery-l on kaks peamist eelist. Esiteks on see mugav API veebilehtede manipuleerimiseks. Sealhulgas pakub see võimsaid meetodeid elementide valimiseks. Saate valida mitte ainult ID-de või klasside järgi; jQuery võimaldab kirjutada keerukaid avaldisi, et valida elemente vastavalt nende seostele teiste elementidega:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');Aja jooksul muutus valikumehhanism eraldi raamatukoguks .
Teiseks eelisteks oli see, et raamatukogu abstraheeris erinevused brauserite vahel. Neil päevadel oli keeruline kirjutada koodi, mis suudaks usaldusväärselt töötada kõikides brauserites.
Standardimise puudumine tähendas, et arendajad pidid arvestama mitmete erinevustega brauserite vahel ja piirjuhtumitega. Vaadake seda varajast jQuery lähtekoodi Ja tänu jQuery-le said arendajad kõik need mured sellest, kuidas need kõik need takistused kõrvaldada, raamatukogu arendustiimi õlgadele.
// 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);
}Ja kuna jQuery, saavad arendajad kõik need mured libisemise üle jätta raamatukogu arendusmeeskonna õlgadele.
Hiljem lihtsustas jQuery keerukamate tehnoloogiate, nagu animatsioonid ja Ajax, rakendamist. Raamatukogust on saanud tõeliselt standardne veebilehtede sõltuvus. Tänapäeval toetab see suurt osa Internetist. W3Techs hindab, et .
jQuery arengu kontroll on muutunud formaalsemaks. 2011. aastal lõi meeskond . 2012. aastal muutus jQuery Board.
. 2015. aastal liitus jQuery Foundation Dojo Foundationiga,, mis liitus seejärel Node.js FoundationigaOpenJS Foundationi loomise jaoksmurrangulisi projekte.»
Kuid viimastel aastatel on jQuery
kaotanud oma populaarsust eemaldas raamatukogu oma saiti esiosa.jätab jQuery kõrvale suurim kliendi sõltuvus tavalise JavaScripti jaoks» (praegu 30 KB suuruses, minimeeritud ja pakitud). Mitmed veebiarenduse suundumused on nõrgestanud jQuery positsiooni kui vajalikku tööriista.
Brauserid
Mitmete põhjuste tõttu on brauseridest tingitud erinevused ja piirangud muutunud vähem oluliseks. Esiteks, standardiseerimine on paranenud. Peamised brauseri arendajad (Apple, Google, Microsoft ja Mozilla) töötavad koos välja raames.
Kuigi brauserid erinevad endiselt üksteisest mitmete oluliste aspektide poolest, on tarnijatel vähemalt võimalus leida ja luua ühtne alus, mitte üksteisega. Vastavalt on brauserite API-d saanud uusi võimalusi. Näiteks suudab asendada jQuery Ajax-funktsioone:
// 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);
});Meetodid ja korrata jQuery valikutööriistu:
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');Elementide klassidega manipuleerimise nüüd saab teha :
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');Lehelt on loetletud veel mõned olukorrad, kus jQuery koodi saab asendada natiivse koodiga. Mõned arendajad kasutavad alati jQuery-d, sest nad ei tea lihtsalt uutest API-dest, kuid kui nad saavad teadlikuks, hakkavad nad seda teeki harvemini kasutama.
Natiivsete võimaluste kasutamine võimaldab suurendada lehtede jõudlust. Paljusid saab nüüd rakendada CSS-i abiga.
Teine põhjus on see, et brauserid uuenevad palju kiiremini kui varem. Enamik neist kasutab , välja arvatud Apple Safari. Need võivad uuendada salaja, ilma kasutaja sekkumiseta, ja ei ole seotud operatsioonisüsteemide uuendustega.
See tähendab, et uued brauserifunktsioonid ja veaparandused levivad palju kiiremini, ega peavad arendajad ootama, kuni jõuab vastuvõetava tasemeni. Nad saavad julgelt uusi funktsioone ja API-sid kasutada ilma jQuery või polüfiilide laadimiseta.
Kolmas põhjus on see, et Internet Explorer läheneb täieliku vananenud olekuni. IE on juba ammu olnud veebiarenduse nuhtluseks üle kogu maailma. Tema iseloomulikud vead olid laialdaselt levinud, ja kuna IE domineeris 2000. aastatel ja ei kasutanud „igihaljast“ uuendamise strateegiat, on tema vanu versioone endiselt sageli näha.
2016. aastal kiirendas Microsoft IE väljakutsumist, kümnendat ja varasemaid versioone, piirdudes IE 11 toe pakkumisega. Üha sagedamini saavad veebiarendajad endale lubada luksust IE toetamisest kõrvale jätta.
Isegi jQuery lõpetas IE 8 ja madalamate versioonide toe alates , mis ilmus 2013. aastal. Kuigi teatud olukordades on endiselt vajalik IE toetus, näiteks vanadel veebisaitidel, esinevad need situatsioonid järjest harvem.
Uued raamistikud
Alates jQuery ilmumisest on loodud mitmeid raamistikke, sealhulgas kaasaegsed liidrid , ja . Nendel on kaks olulist eelist jQuery ees.
Esiteks, need võimaldavad hõlpsasti jagada kasutajaliidese komponente. Raamistikke on projekteeritud lehe renderdamise ja uuendamise toetamiseks. jQuery-d kasutatakse tavaliselt ainult uuendamiseks, jättes serverile ülesande esialgse lehe pakkumise.
Teisest küljest võimaldavad Reacti, Angulari ja Vue komponendid HTMLi, koodi ja isegi CSSi tihedat sidumist. Nii nagu jagame koodibaasi paljude iseseisvate funktsioonide ja klasside kaupa, lihtsustab kasutajaliidese jagamine korduvkasutatavate komponentideks keerukate veebisaitide loomist ja hooldamist.
Teiseks eeliseks on see, et uuemad raamistikud järgivad deklaratiivset paradigmat, kus arendaja kirjeldab, milline kasutajaliides peaks välja nägema, ja raamistik kannab vastutust kõigi vajalike muudatuste tegemise eest soovitud tulemuse saavutamiseks. See lähenemine on vastuolus imperatiivse lähenemisega, mis on iseloomulik jQuery koodile.
jQuery-s määrate te selgelt sammud, et teha mingeid muudatusi. Deklaratiivses raamistikus aga ütlete: "Nende andmete põhjal peaks liides välja nägema nii". See võib oluliselt lihtsustada vigade vaba koodi kirjutamist.
Arendajad on omaks võtnud uusi lähenemisi veebilehtede arendamiseks, mistõttu jQuery populaarsus on vähenenud.
Millal kasutada jQuery?
Nii millal tuleks kasutada jQuery?
Kui projekti keerukus kasvab, on parem alustada teise teegi või raamistiku kasutamisest, mis võimaldab mõtestatult keerukust hallata. Näiteks komponentideks jagamine kasutajaliideses. jQuery kasutamine sellistes veebilehtedes võib alguses tunduda vastuvõetav, kuid see toob kiiresti kaasa spagetikoodi tekkimise, kui te ei ole kindel, milline fragment mõjutab mingit osa lehelt.
Olen olnud sellises olukorras, kus igasugune muudatus tundub keeruline ülesanne. Ei saa olla kindel, et midagi katki ei lähe, kuna jQuery selektorid sõltuvad serveri loodud HTML struktuurist.
Teiselt poolt on lihtsad veebilehed, mis vajavad vaid natuke interaktiivsust või dünaamilist sisu. Sellistes olukordades ei sooviks ma samuti jQueryd vaikimisi kasutada, sest natiivsete APIde kaudu on võimalik teha palju rohkem.
Isegi kui mul oleks vaja midagi võimsamat, otsiksin ma spetsialiseeritud teeki, näiteks Ajaxi jaoks või animatsioonide jaoks. See on lihtsam, kui laadida alla kogu jQuery väikese funktsionaalsuse nimel.
Mõtle, et jQuery kasutamise parimaks põhjuseks on see, et see pakub põhjalikku funktsionaalsust veebisaidi front-end'i jaoks. Selle asemel, et tudeerida mitmesuguseid natiivseid API-sid või spetsialiseeritud teeke, võite lugeda lihtsalt jQuery dokumentatsiooni ja olla kohe produtktiivne.
Imperatiivne lähenemine ei skaalu hästi, kuid selle mõistmine on lihtsam kui teiste teekide deklaratiivne lähenemine. Selgelt piiratud võimalustega saidi puhul on parem kasutada jQuery-d ja töötada rahulikult: raamatukogu ei vaja keerulist koostamist või kompileerimist.
Samuti on jQuery hea variant, kui olete kindel, et veebisait ei muutu aja jooksul keerukamaks, ja kui teid ei häiri natiivne funktsionaalsus, mis kindlasti nõuab rohkem koodi kirjutamist kui jQuery.
Samuti saate seda teeki kasutada, kui peate toetama vanu IE versioone. Sel juhul teenib jQuery teid nagu tollal, kui IE oli kõige populaarsem brauser.
Pilguheit tulevikku
jQuery ei kao niipea. See , ja paljud arendajad eelistavad kasutada selle API-t, isegi kui on olemas natiivmeetodid. Raamatukogu aitas tervele järjekonnale arendajatest luua veebisaite, mis töötavad kõikides brauserites. Ja kuigi paljuski on uued raamatukogud, raamistikud ja paradigmaid selle asendanud, on jQuery mänginud tohutut positiivset rolli kaasaegse veebilehe loomisel.
Kui jQuery funktsionaalsus ei muutu olulisel määral, on täiesti tõenäoline, et järgmise paarikümne aasta jooksul selle raamatukogude kasutamine jätkab aeglast, kuid järkjärgulist langust. Uued veebisaidid luuakse tavaliselt kohe kaasaegsete raamistikude kasutamisega ning sobivate jQuery kasutusscenario'de esinemine on üha haruldasem.
Mõnele ei meeldi veebiarendustööriistade kiire vananemise intensiivsus, kuid minu jaoks on see märk kiirest progressist. jQuery võimaldas meil teha palju paremini. Sama kehtib ka tema järgijate kohta.
Allikas: habr.com
