Zgodovina in zapuščina jQuery

Zgodovina in zapuščina jQuery
jQuery - to je najbolj priljubljeno na svetu knjižnica JavaScript. Skupnost spletnih razvijalcev ga je ustvarila v poznih 2000-ih, kar je povzročilo bogat ekosistem spletnih mest, vtičnikov in ogrodij, ki uporabljajo jQuery pod pokrovom.

Toda v zadnjih letih se je njegov status glavnega orodja za spletni razvoj zmanjšal. Poglejmo, zakaj je jQuery postal popularen in zakaj je izpadel iz mode ter v katerih primerih ga je še priporočljivo uporabljati za izdelavo sodobnih spletnih strani.

Kratka zgodovina jQuery

John Resig (Janez Resig) je leta 2005 ustvaril prvo različico knjižnice in objavljeno leta 2006-m, na dogodku BarCampNYC. Vklopljeno Uradna spletna stran jQuery avtor je napisal/a:

jQuery je knjižnica Javascript, ki temelji na motu: Javascript bi moral biti zabaven za kodiranje. jQuery prevzame običajne, ponavljajoče se naloge, odstrani vse nepotrebne oznake in jih naredi kratke, elegantne in čiste.

jQuery ima dve glavni prednosti. Prvi je priročen API za upravljanje spletnih strani. Predvsem ponuja zmogljive metode za izbiro elementov. Ne samo, da lahko izbirate po ID-ju ali razredu, jQuery vam omogoča pisanje zapletenih izrazov, na primer za izbiro elementov na podlagi njihovih odnosov z drugimi elementi:

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

Sčasoma je izbirni mehanizem postal ločena knjižnica Sizzle.

Druga prednost knjižnice je bila, da je abstrahirala razlike med brskalniki. V tistih letih je bilo težko napisati kodo, ki bi lahko zanesljivo delovala v vseh brskalnikih.

Pomanjkanje standardizacije je pomenilo, da so morali razvijalci upoštevati številne razlike med brskalniki in robnimi primeri. Poglej ta zgodnja izvorna koda jQuery in poiščite jQuery.browser. Tukaj je en primer:

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

In zahvaljujoč jQueryju bi razvijalci lahko preložili skrbi glede vseh teh pasti na ramena ekipe, ki razvija knjižnico.

Kasneje je jQuery olajšal implementacijo kompleksnejših tehnologij, kot so animacije in Ajax. Knjižnica je dejansko postala standardna odvisnost za spletna mesta. In danes napaja ogromen delež interneta. W3Techs verjame v to 74 % spletnih mest danes uporablja jQuery.

Tudi nadzor nad razvojem jQuery je postal bolj formaliziran. Leta 2011 ekipa ustvaril tablo jQuery. In leta 2012 jQuery Board preoblikovan v jQuery Foundation.

Leta 2015 se je fundacija jQuery združila s fundacijo Dojo, ustvariti fundacijo JS, ki se je nato združil z Node.js Foundation v 2019-m ustvariti Fundacija OpenJS, znotraj katerega je bil jQuery eden od »prelomni projekti. "

Spreminjanje okoliščin

Vendar pa je v zadnjih letih jQuery izgubil svojo priljubljenost. GitHub odstranil knjižnico s sprednjega dela mojega mesta. Bootstrap v5 znebite se jQueryjaker je njegova"največja odvisnost odjemalca za običajni JavaScript"(trenutno velikosti 30 KB, pomanjšano in zapakirano). Številni trendi v spletnem razvoju so oslabili položaj jQuery kot bistvenega orodja.

Brskalniki

Zaradi številnih razlogov so razlike in omejitve brskalnikov postale manj pomembne. Prvič, standardizacija se je izboljšala. Glavni razvijalci brskalnikov (Apple, Google, Microsoft in Mozilla) sodelujejo pri razvoju spletni standardi v tem okviru Delovna skupina za tehnologijo spletnih hipertekstnih aplikacij.
Čeprav se brskalniki med seboj še vedno razlikujejo na več pomembnih načinov, imajo prodajalci vsaj možnost iskanja in ustvarjanja skupne podatkovne baze namesto permanentna vojna skupaj. V skladu s tem so API-ji brskalnika pridobili nove zmogljivosti. npr. Fetch API lahko nadomesti funkcije Ajax iz 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);
    });

Metode querySelector и querySelectorAll podvojeni izbirniki jQuery:

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

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

Zdaj lahko manipulirate z razredi elementov z uporabo classList:

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

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

Mesto Morda ne potrebujete jQueryja Tukaj je še nekaj situacij, v katerih je mogoče kodo jQuery zamenjati z izvorno kodo. Nekateri razvijalci se vedno držijo jQuery, ker preprosto ne poznajo novih API-jev, ko pa jih poznajo, knjižnico začnejo uporabljati manj pogosto.

Uporaba izvornih funkcij izboljša delovanje strani. Mnogi animacijski učinki iz jQuery zdaj lahko izvajate veliko bolj učinkovito z uporabo CSS.

Drugi razlog je, da se brskalniki posodabljajo veliko hitreje kot prej. Večina jih uporablja »evergreen« strategijo prenove, z izjemo Apple Safarija. Posodabljajo se lahko v ozadju brez sodelovanja uporabnika in niso vezani na posodobitve OS.

To pomeni, da se nove funkcije brskalnika in popravki napak distribuirajo veliko hitreje, razvijalcem pa ni treba čakati, da Lahko uporabim bo dosegel sprejemljivo raven. Samozavestno lahko uporabljajo nove funkcije in API-je brez prenosa jQuery ali polifillov.

Tretji razlog je, da se Internet Explorer bliža stanju popolne nepomembnosti. IE je že dolgo poguba spletnega razvoja po vsem svetu. Njegove napake so bile zelo razširjene in ker je IE prevladoval v 2000-ih in ni uporabljal zimzelene strategije posodabljanja, so starejše različice še vedno pogoste.

Leta 2016 je Microsoft pospešil razgradnjo IE, prenehanje podpirati deseto in starejše različice, kar omejuje podporo na IE 11. Spletni razvijalci pa si vse pogosteje privoščijo razkošje, da ignorirajo združljivost IE.

Celo jQuery je prenehal podpirati IE 8 in starejše od različica 2.0, objavljeno leta 2013. In čeprav je v nekaterih primerih podpora za IE še vedno potrebna, na primer na starejših spletnih mestih, se te situacije pojavljajo vse manj pogosto.

Novi okvirji

Od pojava jQuery je bilo ustvarjenih veliko ogrodij, vključno s sodobnimi voditelji Reagirajo, Kotna и Vue. Pred jQuery imajo dve pomembni prednosti.

Prvič, olajšajo ločevanje uporabniškega vmesnika na komponente. Ogrodja so zasnovana za upravljanje upodabljanja in posodabljanja strani. In jQuery se običajno uporablja samo za posodabljanje, pri čemer je naloga zagotavljanja začetne strani prepuščena strežniku.

Po drugi strani vam komponente React, Angular in Vue omogočajo tesno povezavo HTML, kode in celo CSS. Tako kot bazo kode razdelimo na številne samostojne funkcije in razrede, zmožnost razdelitve vmesnika na komponente, ki jih je mogoče ponovno uporabiti, olajša izdelavo in vzdrževanje kompleksnih spletnih mest.

Druga prednost je ta, da se novejši okviri držijo deklarativne paradigme, v kateri razvijalec opiše, kako naj bi izgledal vmesnik, in prepusti ogrodju, da izvede vse potrebne spremembe, da doseže želeno. Ta pristop je v nasprotju z imperativnim pristopom, ki je značilen za kodo jQuery.

V jQuery izrecno zapišete korake za kakršno koli spremembo. In v deklarativnem okviru rečete: "Glede na te podatke bi moral biti vmesnik videti tako." To lahko zelo olajša pisanje kode brez napak.

Razvijalci so sprejeli nove pristope k razvoju spletnih strani, zato se je priljubljenost jQuery zmanjšala.

Kdaj uporabiti jQuery?

Torej kdaj mora biti uporabljaš jQuery?

Če se kompleksnost projekta poveča, potem je bolje začeti z drugo knjižnico ali ogrodjem, ki vam omogoča smiselno upravljanje kompleksnosti. Na primer, razdelite vmesnik na komponente. Uporaba jQuery na takšnih spletnih mestih je morda na začetku videti v redu, vendar bo hitro pripeljala do kode špageti, kjer niste prepričani, kateri fragment vpliva na kateri del strani.

Bil sem v takšni situaciji, ko poskušam narediti kakršno koli spremembo, se mi zdi težka naloga. Ne morete biti prepričani, da ne boste ničesar pokvarili, ker so izbirniki jQuery odvisni od strukture HTML, ki jo ustvari strežnik.

Na drugem koncu lestvice so preprosta spletna mesta, ki zahtevajo le malo interaktivnosti ali dinamične vsebine. Tudi v teh primerih ne bi privzeto uporabil jQuery, ker lahko z izvornimi API-ji naredite veliko več.

Tudi če bom rabil kaj močnejšega, bom poiskal specializirano knjižnico, npr. axios za Ajax oz Animate.css za animacije. To bo lažje kot nalaganje celotnega jQueryja za majhno funkcionalnost.

Mislim, da je najboljša utemeljitev za uporabo jQuery ta, da zagotavlja celovito funkcionalnost za sprednji del spletnega mesta. Namesto učenja različnih izvornih API-jev ali specializiranih knjižnic, lahko preberete samo dokumentacijo jQuery in takoj postanete produktivni.

Imperativni pristop se ne prilagaja dobro, vendar se ga je lažje naučiti kot deklarativni pristop drugih knjižnic. Za spletno mesto z jasno omejenimi zmogljivostmi je bolje uporabiti jQuery in delati mirno: knjižnica ne zahteva zapletenega sestavljanja ali prevajanja.

Poleg tega je jQuery dober, če ste prepričani, da se vaše spletno mesto sčasoma ne bo zapletlo, in če vam ni mar za izvorno funkcionalnost, ki bo zagotovo zahtevala pisanje več kode kot jQuery.

To knjižnico lahko uporabite tudi, če potrebujete podporo za starejše različice IE. Potem vam bo jQuery služil kot v časih, ko je bil IE najbolj priljubljen brskalnik.

prospection

jQuery ne bo kmalu izginil. Ona aktivno razvijain mnogi razvijalci raje uporabljajo njegov API, tudi če so na voljo izvorne metode. Knjižnica je celotni generaciji razvijalcev pomagala ustvariti spletna mesta, ki delujejo v katerem koli brskalniku. Čeprav so ga v mnogih pogledih nadomestile nove knjižnice, ogrodja in paradigme, je jQuery odigral izjemno pozitivno vlogo pri ustvarjanju sodobnega spleta.

Razen če se funkcionalnost jQuery bistveno ne spremeni, je verjetno, da bo uporaba knjižnice v naslednjih nekaj letih počasi, a vztrajno upadala. Nova spletna mesta so že od začetka običajno zgrajena z uporabo sodobnejših okvirov, primerni primeri uporabe za jQuery pa postajajo vse redkejši.

Nekaterim ni všeč hitrost, s katero orodja za spletni razvoj zastarajo, zame pa je to dokaz hitrega napredka. jQuery nam je omogočil, da naredimo veliko stvari bolje. Enako velja za njene naslednike.

Vir: www.habr.com

Dodaj komentar