jQuery Geskiedenis en Legacy

jQuery Geskiedenis en Legacy
jQuery - dit is die gewildste in die wêreld 'n JavaScript-biblioteek. Die webontwikkelingsgemeenskap het dit in die laat 2000's geskep, wat gelei het tot 'n ryk ekosisteem van werwe, inproppe en raamwerke wat jQuery onder die enjinkap gebruik.

Maar in onlangse jare het sy status as die voorste hulpmiddel vir webontwikkeling verval. Kom ons kyk hoekom jQuery gewild geword het en hoekom dit uit die mode geraak het, en ook in watter gevalle dit steeds raadsaam is om dit te gebruik om moderne webwerwe te skep.

'n Kort geskiedenis van jQuery

John Resig (John Resig) het die eerste weergawe van die biblioteek in 2005 geskep, en gepubliseer in 2006-m, by 'n geleentheid genaamd BarCampNYC. Aan jQuery amptelike webwerf die skrywer het geskryf:

jQuery is 'n Javascript-biblioteek gebaseer op die leuse: Javascript moet pret wees om te kodeer. jQuery neem algemene, herhalende take, stroop al die onnodige opmaak uit en maak dit kort, elegant en skoon.

jQuery het twee hoofvoordele. Die eerste is 'n gerieflike API om webblaaie te manipuleer. Dit bied veral kragtige metodes om elemente te kies. Nie net kan jy volgens ID of klas kies nie, jQuery laat jou toe om komplekse uitdrukkings te skryf, byvoorbeeld om elemente te kies gebaseer op hul verhoudings met ander elemente:

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

Met verloop van tyd het die seleksiemeganisme 'n aparte biblioteek geword sis.

Die tweede voordeel van die biblioteek was dat dit verskille tussen blaaiers geabstraheer het. In daardie jare was dit moeilik om kode te skryf wat betroubaar in alle blaaiers kon werk.

Die gebrek aan standaardisering het beteken dat ontwikkelaars rekening moes hou met talle verskille tussen blaaiers en randgevalle. Gaan kyk na hierdie vroeë jQuery-bronkode en soek vir jQuery.browser. Hier is een voorbeeld:

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

En danksy jQuery kon ontwikkelaars die bekommernisse oor al hierdie slaggate op die skouers van die span wat die biblioteek ontwikkel, verskuif.

Later het jQuery dit makliker gemaak om meer komplekse tegnologieë soos animasies en Ajax te implementeer. Die biblioteek het effektief 'n standaardafhanklikheid vir webwerwe geword. En vandag is dit die krag van 'n groot deel van die internet. W3Techs glo dit 74% van werwe gebruik vandag jQuery.

Beheer oor jQuery-ontwikkeling het ook meer geformaliseer geraak. In 2011 het die span jQuery Board geskep. En in 2012 jQuery Board omskep in jQuery Foundation.

In 2015 het die jQuery-stigting saamgesmelt met die Dojo-stigting, JS Foundation te skep, wat toe saamgesmelt het met die Node.js Foundation in 2019-m te skep OpenJS-stigting, waarbinne jQuery een van die "deurbraakprojekte».

Veranderende omstandighede

In onlangse jare het jQuery egter sy gewildheid verloor het. GitHub het die biblioteek van die voorkant van my werf verwyder. Bootstrap v5 ontslae te raak van jQuerywant dit is syne"grootste kliëntafhanklikheid vir gewone JavaScript"(tans 30 KB groot, verklein en verpak). Verskeie tendense in webontwikkeling het jQuery se posisie as 'n noodsaaklike hulpmiddel verswak.

Браузеры

Om 'n aantal redes het blaaierverskille en -beperkings minder belangrik geword. Eerstens het standaardisering verbeter. Groot blaaierontwikkelaars (Apple, Google, Microsoft en Mozilla) werk saam om te ontwikkel webstandaarde binne die raamwerk Web Hiperteks Toepassingstegnologie Werkgroep.
Alhoewel blaaiers steeds op 'n aantal belangrike maniere van mekaar verskil, het verskaffers ten minste 'n manier om te soek en 'n gemeenskaplike databasis te skep in plaas van permanente oorlog saam. Gevolglik het blaaier-API's nuwe vermoëns gekry. Bv. Haal API in staat om Ajax-funksies van jQuery te vervang:

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

metodes querySelector и querySelectorAll duplikaat jQuery-kiesers:

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

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

Jy kan nou elementklasse manipuleer deur klaslys:

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

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

Die webwerf Jy het dalk nie jQuery nodig nie Hier is nog 'n paar situasies waarin jQuery-kode vervang kan word met inheemse kode. Sommige ontwikkelaars hou altyd by jQuery omdat hulle eenvoudig nie van die nuwe API's weet nie, maar wanneer hulle dit doen, begin hulle die biblioteek minder gereeld gebruik.

Die gebruik van inheemse kenmerke verbeter bladsywerkverrigting. Baie animasie-effekte van jQuery nou kan jy implementeer baie meer effektief met behulp van CSS.

Die tweede rede is dat blaaiers baie vinniger as voorheen opgedateer word. Die meeste van hulle gebruik "immergroen" hernuwingstrategie, met die uitsondering van Apple Safari. Hulle kan op die agtergrond opgedateer word sonder gebruikersbetrokkenheid en is nie gekoppel aan OS-opdaterings nie.

Dit beteken dat nuwe blaaierkenmerke en foutoplossings baie vinniger versprei word, en ontwikkelaars hoef nie te wag tot die Kan ek gebruik 'n aanvaarbare vlak sal bereik. Hulle kan met selfvertroue nuwe kenmerke en API's gebruik sonder om jQuery of polyfills af te laai.

Die derde rede is dat Internet Explorer 'n toestand van totale irrelevansie nader. IE is lank reeds die vlaag van webontwikkeling regoor die wêreld. Sy foute was wydverspreid, en omdat IE die 2000's oorheers het en nie 'n immergroen opdateringstrategie gebruik het nie, is ouer weergawes steeds algemeen.

In 2016 het Microsoft die ontmanteling van IE versnel, ophou ondersteun tiende en vroeër weergawes, wat ondersteuning beperk tot IE 11. En toenemend het webontwikkelaars die luukse om IE-versoenbaarheid te ignoreer.

Selfs jQuery het opgehou om IE 8 en onder te ondersteun vanaf weergawe 2.0, gepubliseer in 2013. En hoewel IE-ondersteuning in sommige gevalle steeds vereis word, byvoorbeeld op ouer webwerwe, kom hierdie situasies al hoe minder voor.

Nuwe raamwerke

Sedert die koms van jQuery is baie raamwerke geskep, insluitend moderne leiers reageer, Hoekige и Vue. Hulle het twee belangrike voordele bo jQuery.

Eerstens maak hulle dit maklik om die gebruikerskoppelvlak in komponente te skei. Raamwerke is ontwerp om bladsyweergawe en opdatering te hanteer. En jQuery word gewoonlik net vir opdatering gebruik, wat die taak laat om die aanvanklike bladsy aan die bediener te verskaf.

Aan die ander kant laat React-, Angular- en Vue-komponente jou toe om HTML, kode en selfs CSS styf te koppel. Net soos ons die kodebasis in baie selfstandige funksies en klasse verdeel, maak die vermoë om die koppelvlak in herbruikbare komponente te verdeel dit makliker om komplekse werwe te bou en in stand te hou.

Die tweede voordeel is dat meer onlangse raamwerke aan 'n verklarende paradigma voldoen, waarin die ontwikkelaar beskryf hoe die koppelvlak moet lyk en dit aan die raamwerk oorlaat om al die nodige veranderinge aan te bring om te bereik wat verlang word. Hierdie benadering is in stryd met die noodsaaklike benadering wat jQuery-kode kenmerk.

In jQuery skryf jy die stappe uitdruklik neer om enige veranderinge aan te bring. En in 'n verklarende raamwerk sê jy: "Volgens hierdie data moet die koppelvlak so lyk." Dit kan die skryf van foutvrye kode baie makliker maak.

Ontwikkelaars het nuwe benaderings tot webwerf-ontwikkeling aangeneem, en daarom het jQuery se gewildheid afgeneem.

Wanneer om jQuery te gebruik?

So wanneer behoort gebruik jQuery?

As die kompleksiteit van die projek toeneem, is dit beter om met 'n ander biblioteek of raamwerk te begin wat jou toelaat om kompleksiteit sinvol te bestuur. Verdeel byvoorbeeld die koppelvlak in komponente. Die gebruik van jQuery op sulke werwe kan aanvanklik goed lyk, maar dit sal vinnig lei tot spaghetti-kode waar jy nie seker is watter fragment watter deel van die bladsy beïnvloed nie.

Ek was in so 'n situasie, wanneer ek probeer om enige verandering te maak, voel dit soos 'n moeilike taak. Jy kan nie seker wees dat jy niks sal breek nie, want jQuery-keurders is afhanklik van die HTML-struktuur wat deur die bediener gegenereer word.

Aan die ander kant van die skaal is eenvoudige webwerwe wat net 'n bietjie interaktiwiteit of dinamiese inhoud vereis. Ek sal ook nie in hierdie gevalle as verstek jQuery gebruik nie, want daar is soveel meer wat jy met inheemse API's kan doen.

Selfs al het ek iets kragtiger nodig, sal ek 'n gespesialiseerde biblioteek soek, bv. Axios vir Ajax of Animate.css vir animasies. Dit sal makliker wees as om alle jQuery te laai vir 'n klein funksionaliteit.

Ek dink die beste rede vir die gebruik van jQuery is dat dit omvattende funksionaliteit vir die voorkant van 'n webwerf bied. In plaas daarvan om 'n verskeidenheid inheemse API's of gespesialiseerde biblioteke te leer, kan jy net die jQuery-dokumentasie lees en onmiddellik produktief word.

Die imperatiewe benadering skaal nie goed nie, maar dit is makliker om te leer as die verklarende benadering van ander biblioteke. Vir 'n webwerf met duidelik beperkte vermoëns, is dit beter om jQuery te gebruik en kalm te werk: die biblioteek vereis nie komplekse samestelling of samestelling nie.

Boonop is jQuery goed as jy vol vertroue is dat jou werf nie mettertyd ingewikkeld sal raak nie, en as jy nie omgee vir inheemse funksionaliteit nie, wat beslis die skryf van meer kode as jQuery sal vereis.

Jy kan ook hierdie biblioteek gebruik as jy ouer weergawes van IE moet ondersteun. Dan sal jQuery jou bedien soos dit gedoen het in die dae toe IE die gewildste blaaier was.

Kyk na die toekoms

jQuery sal nie binnekort verdwyn nie. Sy aktief ontwikkel, en baie ontwikkelaars verkies om sy API te gebruik, selfs al is inheemse metodes beskikbaar. Die biblioteek het 'n hele generasie ontwikkelaars gehelp om webwerwe te skep wat op enige blaaier werk. Alhoewel dit op baie maniere vervang is deur nuwe biblioteke, raamwerke en paradigmas, het jQuery 'n uiters positiewe rol gespeel in die skepping van die moderne web.

Tensy jQuery se funksionaliteit aansienlik verander, is dit waarskynlik dat die gebruik van die biblioteek oor die volgende paar jaar stadig maar bestendig sal afneem. Nuwe webwerwe is geneig om van die begin af met meer moderne raamwerke gebou te word, en geskikte gebruiksgevalle vir jQuery word al hoe skaarser.

Sommige mense hou nie van die tempo waarteen webontwikkelingsinstrumente verouderd raak nie, maar vir my is dit 'n bewys van vinnige vordering. jQuery het ons toegelaat om baie dinge beter te doen. Dieselfde geld vir haar opvolgers.

Bron: will.com

Voeg 'n opmerking