jQuery historik och arv

jQuery historik och arv
jQuery - detta är det mest populära i världen ett JavaScript-bibliotek. Webbutvecklingsgemenskapen skapade det i slutet av 2000-talet, vilket resulterade i ett rikt ekosystem av webbplatser, plugins och ramverk som använder jQuery under huven.

Men på senare år har dess status som det främsta verktyget för webbutveckling urholkats. Låt oss titta på varför jQuery blev populärt och varför det gick ur mode, och även i vilka fall det fortfarande är tillrådligt att använda det för att skapa moderna webbplatser.

En kort historia om jQuery

John Resig (John Resig) skapade den första versionen av biblioteket 2005, och publicerades 2006-m, på ett event som heter BarCampNYC. På jQuery officiella webbplats författaren skrev:

jQuery är ett Javascript-bibliotek baserat på mottot: Javascript ska vara roligt att koda. jQuery tar vanliga, repetitiva uppgifter, tar bort all onödig markering och gör dem korta, eleganta och rena.

jQuery har två huvudsakliga fördelar. Det första är ett bekvämt API för att manipulera webbsidor. I synnerhet ger det kraftfulla metoder för att välja element. Inte bara kan du välja efter ID eller klass, jQuery låter dig skriva komplexa uttryck, till exempel för att välja element baserat på deras relationer med andra element:

// Select every item within the list of people within the contacts element
$('#contacts ul.people li');

Med tiden blev urvalsmekanismen ett separat bibliotek Fräsa vid matlagning.

Den andra fördelen med biblioteket var att det abstraherade skillnader mellan webbläsare. På de åren var det svårt att skriva kod som kunde fungera tillförlitligt i alla webbläsare.

Bristen på standardisering innebar att utvecklare behövde ta hänsyn till många skillnader mellan webbläsare och edge-fall. Ta en titt på denna tidiga jQuery-källkod och sök efter jQuery.browser. Här är ett exempel:

// 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);
}

Och tack vare jQuery kunde utvecklare flytta oron över alla dessa fallgropar på axlarna av teamet som utvecklade biblioteket.

Senare gjorde jQuery det lättare att implementera mer komplexa tekniker som animationer och Ajax. Biblioteket har i praktiken blivit ett standardberoende för webbplatser. Och idag driver den en stor del av Internet. W3Techs tror det 74 % av webbplatserna använder idag jQuery.

Kontrollen över utvecklingen av jQuery har också blivit mer formaliserad. 2011 laget skapade jQuery Board. Och 2012 jQuery Board omvandlas till jQuery Foundation.

2015 slogs jQuery Foundation samman med Dojo Foundation, att skapa JS Foundation, som sedan slogs samman med Node.js Foundation till 2019-m att skapa OpenJS Foundation, inom vilken jQuery var en av "genombrottsprojekt. »

Föränderliga omständigheter

Men på senare år har jQuery förlorat sin popularitet. GitHub tog bort biblioteket från frontend på min webbplats. Bootstrap v5 bli av med jQueryför det är hans"största klientberoendet för vanlig JavaScript"(för närvarande 30 KB i storlek, förminskad och packad). Flera trender inom webbutveckling har försvagat jQuerys position som ett väsentligt verktyg.

Браузеры

Av flera skäl har skillnader och begränsningar i webbläsaren blivit mindre viktiga. För det första har standardiseringen förbättrats. Stora webbläsarutvecklare (Apple, Google, Microsoft och Mozilla) arbetar tillsammans för att utveckla webbstandarder inom ramarna Web Hypertext Application Technology Working Group.
Även om webbläsare fortfarande skiljer sig från varandra på ett antal viktiga sätt, har leverantörer åtminstone ett sätt att söka och skapa en gemensam databas istället för permanent krig tillsammans. Följaktligen har webbläsarens API:er fått nya möjligheter. T.ex, Fetch API kan ersätta Ajax-funktioner från 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 querySelector и querySelectorAll dubbletter av jQuery-väljare:

// jQuery
const fooDivs = $('.foo div');

// native
const fooDivs = document.querySelectorAll('.foo div');

Du kan nu manipulera elementklasser med hjälp av klasslista:

// jQuery
$('#warning').toggleClass('visible');

// native
document.querySelector('#warning').classList.toggle('visible');

Webbplatsen Du kanske inte behöver jQuery Här är några fler situationer där jQuery-kod kan ersättas med inbyggd kod. Vissa utvecklare håller sig alltid till jQuery eftersom de helt enkelt inte känner till de nya API:erna, men när de gör det börjar de använda biblioteket mer sällan.

Att använda inbyggda funktioner förbättrar sidans prestanda. Många animationseffekter från jQuery nu kan du implementera mycket effektivare använder CSS.

Det andra skälet är att webbläsare uppdateras mycket snabbare än tidigare. De flesta av dem använder "evergreen" förnyelsestrategi, med undantag för Apple Safari. De kan uppdateras i bakgrunden utan användarinblandning och är inte knutna till OS-uppdateringar.

Detta innebär att nya webbläsarfunktioner och buggfixar distribueras mycket snabbare, och utvecklare behöver inte vänta tills Kan jag använda kommer att nå en acceptabel nivå. De kan med säkerhet använda nya funktioner och API:er utan att ladda ner jQuery eller polyfills.

Det tredje skälet är att Internet Explorer närmar sig ett tillstånd av fullständig irrelevans. IE har länge varit banorna för webbutveckling runt om i världen. Dess buggar var utbredda, och eftersom IE dominerade 2000-talet och inte använde en vintergrön uppdateringsstrategi, är äldre versioner fortfarande vanliga.

Under 2016 påskyndade Microsoft avvecklingen av IE, slutar stödja tionde och tidigare versioner, vilket begränsar stödet till IE 11. Och i allt högre grad har webbutvecklare lyxen att ignorera IE-kompatibilitet.

Även jQuery slutade stödja IE 8 och lägre från och med version 2.0, publicerad 2013. Och även om IE-stöd i vissa fall fortfarande krävs, till exempel på äldre sajter, uppstår dessa situationer allt mindre ofta.

Nya ramar

Sedan tillkomsten av jQuery har många ramverk skapats, inklusive moderna ledare Reagera, Vinkel и Vue. De har två viktiga fördelar jämfört med jQuery.

För det första gör de det enkelt att dela upp användargränssnittet i komponenter. Ramar är utformade för att hantera sidrendering och uppdatering. Och jQuery används vanligtvis bara för uppdatering, vilket lämnar uppgiften att tillhandahålla den första sidan till servern.

Å andra sidan låter React-, Angular- och Vue-komponenter dig tätt koppla HTML, kod och till och med CSS. Precis som vi delar upp kodbasen i många fristående funktioner och klasser, gör möjligheten att dela upp gränssnittet i återanvändbara komponenter det enklare att bygga och underhålla komplexa webbplatser.

Den andra fördelen är att nyare ramverk följer ett deklarativt paradigm, där utvecklaren beskriver hur gränssnittet ska se ut och överlåter till ramverket att göra alla nödvändiga ändringar för att uppnå det som önskas. Detta tillvägagångssätt strider mot det imperativa tillvägagångssättet som kännetecknar jQuery-kod.

I jQuery skriver du uttryckligen ner stegen för att göra eventuella ändringar. Och i ett deklarativt ramverk säger du, "Enligt dessa data ska gränssnittet se ut så här." Detta kan göra det mycket lättare att skriva felfri kod.

Utvecklare har anammat nya tillvägagångssätt för webbplatsutveckling, vilket är anledningen till att jQuerys popularitet har minskat.

När ska jag använda jQuery?

Så när måste vara använda jQuery?

Om komplexiteten i projektet ökar, är det bättre att börja med ett annat bibliotek eller ramverk som låter dig hantera komplexiteten på ett meningsfullt sätt. Dela till exempel upp gränssnittet i komponenter. Att använda jQuery på sådana sajter kan se bra ut till en början, men det kommer snabbt att leda till spagettikod där du inte är säker på vilket fragment som påverkar vilken del av sidan.

Jag har varit i en sådan situation, när jag försöker göra någon förändring känns det som en svår uppgift. Du kan inte vara säker på att du inte kommer att bryta något eftersom jQuery-väljare beror på HTML-strukturen som genereras av servern.

I andra änden av skalan finns enkla sajter som bara kräver lite interaktivitet eller dynamiskt innehåll. Jag skulle inte använda jQuery som standard i dessa fall heller, eftersom det finns så mycket mer du kan göra med inbyggda API:er.

Även om jag behöver något mer kraftfullt kommer jag att leta efter ett specialiserat bibliotek, t.ex. Axios för Ajax eller Animate.css för animationer. Detta blir enklare än att ladda all jQuery för en liten funktionalitet.

Jag tror att det bästa skälet till att använda jQuery är att det ger omfattande funktionalitet för fronten av en webbplats. Istället för att lära dig en mängd olika inbyggda API:er eller specialiserade bibliotek kan du bara läsa jQuery-dokumentationen och bli omedelbart produktiv.

Det imperativa tillvägagångssättet skalar inte bra, men det är lättare att lära sig än andra biblioteks deklarativa tillvägagångssätt. För en webbplats med tydligt begränsade möjligheter är det bättre att använda jQuery och arbeta lugnt: biblioteket kräver ingen komplicerad montering eller kompilering.

Dessutom är jQuery bra om du är säker på att din webbplats inte kommer att bli komplicerad med tiden, och om du inte bryr dig om inbyggd funktionalitet, vilket säkert kommer att kräva att du skriver mer kod än jQuery.

Du kan också använda det här biblioteket om du behöver stödja äldre versioner av IE. Då kommer jQuery att tjäna dig som det gjorde förr i tiden då IE var den mest populära webbläsaren.

prospektering

jQuery kommer inte att försvinna någon gång snart. Hon aktivt utvecklas, och många utvecklare föredrar att använda dess API, även om inhemska metoder är tillgängliga. Biblioteket har hjälpt en hel generation utvecklare att skapa webbplatser som fungerar på alla webbläsare. Även om det på många sätt har ersatts av nya bibliotek, ramverk och paradigm, har jQuery spelat en oerhört positiv roll i skapandet av den moderna webben.

Om inte jQuerys funktionalitet förändras markant, är det troligt att användningen av biblioteket kommer att fortsätta att sakta men stadigt minska under de närmaste åren. Nya webbplatser tenderar att byggas med modernare ramverk från början, och lämpliga användningsfall för jQuery blir allt mer sällsynta.

Vissa människor gillar inte den hastighet med vilken webbutvecklingsverktyg blir föråldrade, men för mig är det ett bevis på snabba framsteg. jQuery har gjort det möjligt för oss att göra många saker bättre. Detsamma gäller hennes efterträdare.

Källa: will.com

Lägg en kommentar