jQuery -
Men de siste årene har statusen som det fremste verktøyet for webutvikling erodert. La oss se på hvorfor jQuery ble populær og hvorfor den falt ut av moten, og også i hvilke tilfeller det fortsatt er tilrådelig å bruke den til å lage moderne nettsteder.
En kort historie om jQuery
John Resig (
jQuery er et Javascript-bibliotek basert på mottoet: Javascript skal være morsomt å kode. jQuery tar vanlige, repeterende oppgaver, fjerner all unødvendig markering og gjør dem korte, elegante og rene.
jQuery har to hovedfordeler. Den første er en praktisk API for å manipulere nettsider. Spesielt gir det kraftige metoder for å velge elementer. Ikke bare kan du velge etter ID eller klasse, jQuery lar deg skrive komplekse uttrykk, for eksempel for å velge elementer basert på deres forhold til andre elementer:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');
Med tiden ble seleksjonsmekanismen et eget bibliotek
Den andre fordelen med biblioteket var at det abstraherte forskjeller mellom nettlesere. I disse årene var det vanskelig å skrive kode som kunne fungere pålitelig i alle nettlesere.
Mangelen på standardisering betydde at utviklere måtte ta hensyn til mange forskjeller mellom nettlesere og edge-tilfeller. Se på
// 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 utviklere flytte bekymringene om alle disse fallgruvene over på skuldrene til teamet som utvikler biblioteket.
Senere gjorde jQuery det lettere å implementere mer komplekse teknologier som animasjoner og Ajax. Biblioteket har i praksis blitt en standard avhengighet for nettsteder. Og i dag driver den en stor del av Internett. W3Techs mener det
Kontroll over jQuery-utvikling har også blitt mer formalisert. I 2011 laget
I 2015 fusjonerte jQuery Foundation med Dojo Foundation,
Skiftende omstendigheter
Imidlertid har jQuery de siste årene
lesere
Av en rekke årsaker har nettleserforskjeller og begrensninger blitt mindre viktige. For det første har standardiseringen blitt bedre. Store nettleserutviklere (Apple, Google, Microsoft og Mozilla) jobber sammen for å utvikle
Selv om nettlesere fortsatt skiller seg fra hverandre på en rekke viktige måter, har leverandører i det minste et middel til å søke og lage en felles database i stedet for
// 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);
});
fremgangsmåter
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
Du kan nå manipulere elementklasser ved å bruke
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
Området
Bruk av integrerte funksjoner forbedrer sideytelsen. Mange
Den andre grunnen er at nettlesere oppdateres mye raskere enn før. De fleste av dem bruker
Dette betyr at nye nettleserfunksjoner og feilrettinger distribueres mye raskere, og utviklere trenger ikke å vente til
Den tredje grunnen er at Internet Explorer nærmer seg en tilstand av fullstendig irrelevans. IE har lenge vært banebrytende for nettutvikling over hele verden. Feilene var utbredt, og fordi IE dominerte på 2000-tallet og ikke brukte en eviggrønn oppdateringsstrategi, er eldre versjoner fortsatt vanlige.
I 2016 akselererte Microsoft avviklingen av IE,
Til og med jQuery sluttet å støtte IE 8 og lavere fra og med
Nye rammer
Siden bruken av jQuery har mange rammeverk blitt opprettet, inkludert moderne ledere
For det første gjør de det enkelt å dele brukergrensesnittet i komponenter. Rammer er designet for å håndtere sidegjengivelse og oppdatering. Og jQuery brukes vanligvis bare for oppdatering, og overlater oppgaven med å gi den første siden til serveren.
På den annen side lar React-, Angular- og Vue-komponenter deg koble HTML, kode og til og med CSS tett. Akkurat som vi deler kodebasen inn i mange selvstendige funksjoner og klasser, gjør muligheten til å dele grensesnittet inn i gjenbrukbare komponenter det enklere å bygge og vedlikeholde komplekse nettsteder.
Den andre fordelen er at nyere rammeverk holder seg til et deklarativt paradigme, der utvikleren beskriver hvordan grensesnittet skal se ut og overlater til rammeverket å gjøre alle nødvendige endringer for å oppnå det som er ønsket. Denne tilnærmingen er i strid med den imperative tilnærmingen som kjennetegner jQuery-kode.
I jQuery skriver du eksplisitt ned trinnene for å gjøre endringer. Og i et deklarativt rammeverk sier du: "I henhold til disse dataene skal grensesnittet se slik ut." Dette kan gjøre det mye enklere å skrive feilfri kode.
Utviklere har tatt i bruk nye tilnærminger til utvikling av nettsteder, og det er grunnen til at jQuerys popularitet har gått ned.
Når skal jeg bruke jQuery?
Så når bør bruker jQuery?
Hvis kompleksiteten til prosjektet øker, er det bedre å starte med et annet bibliotek eller rammeverk som lar deg administrere kompleksiteten meningsfullt. Del for eksempel opp grensesnittet i komponenter. Å bruke jQuery på slike nettsteder kan se bra ut til å begynne med, men det vil raskt føre til spaghettikode hvor du ikke er sikker på hvilket fragment som påvirker hvilken del av siden.
Jeg har vært i en slik situasjon, når jeg prøver å gjøre endringer, føles det som en vanskelig oppgave. Du kan ikke være sikker på at du ikke vil ødelegge noe fordi jQuery-velgerne avhenger av HTML-strukturen som genereres av serveren.
I den andre enden av skalaen er enkle nettsteder som bare krever litt interaktivitet eller dynamisk innhold. Jeg ville ikke brukt jQuery som standard i disse tilfellene heller, fordi det er så mye mer du kan gjøre med native APIer.
Selv om jeg trenger noe kraftigere, vil jeg se etter et spesialisert bibliotek, f.eks.
Jeg tror den beste begrunnelsen for å bruke jQuery er at det gir omfattende funksjonalitet for frontenden av et nettsted. I stedet for å lære en rekke native API-er eller spesialiserte biblioteker, kan du bare lese jQuery-dokumentasjonen og bli umiddelbart produktiv.
Den imperative tilnærmingen skalerer ikke godt, men den er lettere å lære enn den deklarative tilnærmingen til andre biblioteker. For et nettsted med klart begrensede muligheter er det bedre å bruke jQuery og jobbe rolig: biblioteket krever ikke kompleks montering eller kompilering.
I tillegg er jQuery bra hvis du er sikker på at nettstedet ditt ikke vil bli komplisert over tid, og hvis du ikke bryr deg om innebygd funksjonalitet, som helt sikkert vil kreve å skrive mer kode enn jQuery.
Du kan også bruke dette biblioteket hvis du trenger å støtte eldre versjoner av IE. Da vil jQuery tjene deg som den gjorde den gang da IE var den mest populære nettleseren.
Prøveboring
jQuery vil ikke forsvinne med det første. Hun
Med mindre funksjonaliteten til jQuery endres betydelig, er det sannsynlig at bruken av biblioteket vil fortsette å sakte men jevnt avta i løpet av de neste årene. Nye nettsteder har en tendens til å bli bygget ved hjelp av mer moderne rammeverk fra starten av, og passende brukstilfeller for jQuery blir stadig mer sjeldne.
Noen mennesker liker ikke hastigheten som webutviklingsverktøy blir foreldet, men for meg er det et bevis på rask fremgang. jQuery har tillatt oss å gjøre mange ting bedre. Det samme gjelder hennes etterfølgere.
Kilde: www.habr.com