jQuery -
Men i de senere år er dens status som det førende værktøj til webudvikling eroderet. Lad os se på, hvorfor jQuery blev populær, og hvorfor det faldt af mode, og også i hvilke tilfælde det stadig er tilrådeligt at bruge det til at skabe moderne hjemmesider.
En kort historie om jQuery
John Resig (
jQuery er et Javascript-bibliotek baseret på mottoet: Javascript skal være sjovt at kode. jQuery tager almindelige, gentagne opgaver, fjerner al den unødvendige markering og gør dem korte, elegante og rene.
jQuery har to hovedfordele. Den første er en praktisk API til at manipulere websider. Det giver især kraftfulde metoder til at vælge elementer. Ikke kun kan du vælge efter ID eller klasse, jQuery giver dig mulighed for at skrive komplekse udtryk, for eksempel for at vælge elementer baseret på deres relationer med andre elementer:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');
Med tiden udviklede udvælgelsesmekanismen sig til et separat bibliotek
Den anden fordel ved biblioteket var, at det abstraherede forskelle mellem browsere. I de år var det svært at skrive kode, der kunne fungere pålideligt i alle browsere.
Manglen på standardisering betød, at udviklere skulle tage højde for adskillige forskelle mellem browsere og edge cases. 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 udviklere flytte bekymringerne om alle disse faldgruber over på skuldrene af holdet, der udviklede biblioteket.
Senere gjorde jQuery det nemmere at implementere mere komplekse teknologier såsom animationer og Ajax. Biblioteket er reelt blevet en standardafhængighed for websteder. Og i dag driver den en stor del af internettet. Det mener W3Techs
Kontrol over jQuery-udvikling er også blevet mere formaliseret. I 2011 holdet
I 2015 fusionerede jQuery Foundation med Dojo Foundation,
Skiftende omstændigheder
Men i de seneste år har jQuery
Браузеры
Af en række årsager er browserforskelle og begrænsninger blevet mindre vigtige. For det første er standardiseringen forbedret. Store browserudviklere (Apple, Google, Microsoft og Mozilla) arbejder sammen om at udvikle
Selvom browsere stadig adskiller sig fra hinanden på en række vigtige måder, har leverandører i det mindste et middel til at søge og oprette en fælles 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);
});
metoder
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
Du kan nu manipulere elementklasser vha
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
Webstedet
Brug af indbyggede funktioner forbedrer sideydelsen. Mange
Den anden grund er, at browsere opdateres meget hurtigere end før. De fleste af dem bruger
Det betyder, at nye browserfunktioner og fejlrettelser distribueres meget hurtigere, og udviklere behøver ikke at vente til
Den tredje grund er, at Internet Explorer nærmer sig en tilstand af fuldstændig irrelevans. IE har længe været banebrydende for webudvikling over hele verden. Dens fejl var udbredt, og fordi IE dominerede 2000'erne og ikke brugte en stedsegrøn opdateringsstrategi, er ældre versioner stadig almindelige.
I 2016 fremskyndede Microsoft nedlukningen af IE,
Selv jQuery holdt op med at understøtte IE 8 og derunder fra
Nye rammer
Siden fremkomsten af jQuery er der blevet skabt mange rammer, inklusive moderne ledere
For det første gør de det nemt at adskille brugergrænsefladen i komponenter. Rammer er designet til at håndtere sidegengivelse og opdatering. Og jQuery bruges normalt kun til opdatering, hvilket efterlader opgaven med at levere den indledende side til serveren.
På den anden side giver React-, Angular- og Vue-komponenter dig mulighed for at koble HTML, kode og endda CSS tæt sammen. Ligesom vi opdeler kodebasen i mange selvstændige funktioner og klasser, gør evnen til at opdele grænsefladen i genbrugelige komponenter det nemmere at bygge og vedligeholde komplekse websteder.
Den anden fordel er, at nyere rammer overholder et deklarativt paradigme, hvor udvikleren beskriver, hvordan grænsefladen skal se ud og overlader det til rammen at foretage alle de nødvendige ændringer for at opnå det ønskede. Denne tilgang er i modstrid med den imperative tilgang, der kendetegner jQuery-kode.
I jQuery skriver du eksplicit ned trinene for at foretage ændringer. Og i en deklarativ ramme siger du: "Ifølge disse data skulle grænsefladen se sådan ud." Dette kan gøre det meget nemmere at skrive fejlfri kode.
Udviklere har taget nye tilgange til hjemmesideudvikling, hvorfor jQuerys popularitet er faldet.
Hvornår skal man bruge jQuery?
Så når skal være bruge jQuery?
Hvis kompleksiteten af projektet øges, så er det bedre at starte med et andet bibliotek eller en ramme, der giver dig mulighed for meningsfuldt at styre kompleksiteten. Opdel for eksempel grænsefladen i komponenter. Brug af jQuery på sådanne websteder kan se fint ud i starten, men det vil hurtigt føre til spaghettikode, hvor du ikke er sikker på, hvilket fragment der påvirker hvilken del af siden.
Jeg har været i sådan en situation, når jeg prøvede at lave en ændring, føles det som en svær opgave. Du kan ikke være sikker på, at du ikke vil bryde noget, fordi jQuery-vælgere afhænger af HTML-strukturen, der genereres af serveren.
I den anden ende af skalaen er simple websteder, der kun kræver en smule interaktivitet eller dynamisk indhold. Jeg ville heller ikke bruge jQuery som standard i disse tilfælde, fordi der er så meget mere, du kan gøre med native API'er.
Selvom jeg har brug for noget mere kraftfuldt, vil jeg lede efter et specialiseret bibliotek, f.eks.
Jeg tror, at den bedste begrundelse for at bruge jQuery er, at den giver omfattende funktionalitet til frontenden af et websted. I stedet for at lære en række indbyggede API'er eller specialiserede biblioteker, kan du kun læse jQuery-dokumentationen og blive produktiv med det samme.
Den imperative tilgang skalerer ikke godt, men den er lettere at lære end andre bibliotekers deklarative tilgang. For et websted med klart begrænsede muligheder er det bedre at bruge jQuery og arbejde roligt: Biblioteket kræver ikke kompleks samling eller kompilering.
Derudover er jQuery godt, hvis du er sikker på, at dit websted ikke bliver mere komplekst med tiden, og hvis du er ligeglad med indbygget funktionalitet, hvilket helt sikkert vil kræve at skrive mere kode end jQuery.
Du kan også bruge dette bibliotek, hvis du har brug for at understøtte ældre versioner af IE. Så vil jQuery tjene dig som den gjorde dengang, hvor IE var den mest populære browser.
prospektering
jQuery forsvinder ikke lige nu. Hun
Medmindre jQuerys funktionalitet ændres væsentligt, er det sandsynligt, at brugen af biblioteket vil fortsætte med at falde langsomt, men støt i løbet af de næste par år. Nye hjemmesider har en tendens til at blive bygget ved hjælp af mere moderne rammer fra starten, og egnede use cases til jQuery bliver mere og mere sjældne.
Nogle mennesker kan ikke lide den hastighed, hvormed webudviklingsværktøjer bliver forældede, men for mig er det et bevis på hurtige fremskridt. jQuery har givet os mulighed for at gøre mange ting bedre. Det samme gælder for hendes efterfølgere.
Kilde: www.habr.com