Istoricul și moștenirea jQuery

Istoricul și moștenirea jQuery
jQuery - acesta este cel mai popular în lume o bibliotecă JavaScript. Comunitatea de dezvoltare web l-a creat la sfârșitul anilor 2000, rezultând un ecosistem bogat de site-uri, pluginuri și cadre care utilizează jQuery sub capotă.

Dar, în ultimii ani, statutul său de instrument principal pentru dezvoltarea web s-a erodat. Să vedem de ce jQuery a devenit popular și de ce a ieșit din modă și, de asemenea, în ce cazuri este încă recomandabil să-l folosești pentru a crea site-uri web moderne.

O scurtă istorie a jQuery

John Resig (Ioan Resig) a creat prima versiune a bibliotecii în 2005 și publicat în 2006-m, la un eveniment numit BarCampNYC. Pe Site-ul oficial jQuery autorul a scris:

jQuery este o bibliotecă Javascript bazată pe motto-ul: Javascript ar trebui să fie distractiv de codat. jQuery preia sarcini comune, repetitive, elimină toate markupurile inutile și le face scurte, elegante și curate.

jQuery are două avantaje principale. Primul este un API convenabil pentru manipularea paginilor web. În special, oferă metode puternice de selectare a elementelor. Nu numai că puteți selecta după ID sau clasă, jQuery vă permite să scrieți expresii complexe, de exemplu, să selectați elemente pe baza relațiilor lor cu alte elemente:

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

De-a lungul timpului, mecanismul de selecție a devenit o bibliotecă separată sfârâi.

Al doilea avantaj al bibliotecii a fost acela că a abstractizat diferențele dintre browsere. În acei ani, era dificil să scrii cod care să poată funcționa fiabil în toate browserele.

Lipsa standardizării a însemnat că dezvoltatorii trebuiau să țină seama de numeroasele diferențe între browsere și cazuri de margine. Aruncăm o privire la acest cod sursă jQuery timpuriu și căutați jQuery.browser. Iată un exemplu:

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

Și datorită jQuery, dezvoltatorii ar putea transfera grijile legate de toate aceste capcane pe umerii echipei care dezvoltă biblioteca.

Mai târziu, jQuery a facilitat implementarea tehnologiilor mai complexe, cum ar fi animațiile și Ajax. Biblioteca a devenit efectiv o dependență standard pentru site-uri web. Și astăzi alimentează o mare parte a internetului. W3Techs crede că 74% dintre site-urile de astăzi folosesc jQuery.

Controlul asupra dezvoltării jQuery a devenit, de asemenea, mai formalizat. În 2011 echipa a creat jQuery Board. Și în 2012 jQuery Board transformat în jQuery Foundation.

În 2015, Fundația jQuery a fuzionat cu Fundația Dojo, pentru a crea Fundația JS, care apoi a fuzionat cu Fundația Node.js în 2019-m pentru a crea Fundația OpenJS, în cadrul căruia jQuery a fost unul dintre „proiecte inovatoare. »

Circumstanțele în schimbare

Cu toate acestea, în ultimii ani jQuery și-a pierdut popularitatea. GitHub am eliminat biblioteca de pe front-end-ul site-ului meu. Bootstrap v5 scapa de jQuerypentru că este al lui"cea mai mare dependență de client pentru JavaScript obișnuit„(în prezent 30 KB în dimensiune, miniat și ambalat). Mai multe tendințe în dezvoltarea web au slăbit poziția jQuery ca instrument esențial.

browsere

Din mai multe motive, diferențele și limitările dintre browser au devenit mai puțin importante. În primul rând, standardizarea s-a îmbunătățit. Principalii dezvoltatori de browsere (Apple, Google, Microsoft și Mozilla) lucrează împreună pentru a dezvolta standardele web în cadrul Grupul de lucru pentru tehnologia aplicațiilor hipertext web.
Deși browserele încă diferă unele de altele în mai multe moduri importante, vânzătorii au cel puțin un mijloc de a căuta și de a crea o bază de date comună în loc de război permanent împreună. În consecință, API-urile browserului au dobândit noi capabilități. De exemplu, Preluare API capabil să înlocuiască funcțiile Ajax din 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 selector jQuery duplicat:

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

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

Acum puteți manipula clasele de elemente folosind classList:

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

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

Site-ul Este posibil să nu aveți nevoie de jQuery Iată câteva situații în care codul jQuery poate fi înlocuit cu cod nativ. Unii dezvoltatori rămân mereu cu jQuery pentru că pur și simplu nu știu despre noile API-uri, dar atunci când o fac, încep să folosească biblioteca mai rar.

Utilizarea funcțiilor native îmbunătățește performanța paginii. Mulți efecte de animație din jQuery acum poți implementa mult mai eficient folosind CSS.

Al doilea motiv este că browserele sunt actualizate mult mai repede decât înainte. Majoritatea folosesc strategie de reînnoire „evergreen”., cu excepția Apple Safari. Acestea pot fi actualizate în fundal fără implicarea utilizatorului și nu sunt legate de actualizările sistemului de operare.

Aceasta înseamnă că noile funcții ale browserului și remedieri de erori sunt distribuite mult mai rapid, iar dezvoltatorii nu trebuie să aștepte până când Pot folosi va atinge un nivel acceptabil. Ei pot folosi cu încredere noi funcții și API-uri fără a descărca jQuery sau polyfills.

Al treilea motiv este că Internet Explorer se apropie de o stare de totală irelevanță. IE a fost de multă vreme nenorocirea dezvoltării web în întreaga lume. Bug-urile sale erau larg răspândite și, deoarece IE a dominat anii 2000 și nu a folosit o strategie de actualizare veșnic verde, versiunile mai vechi sunt încă comune.

În 2016, Microsoft a accelerat dezafectarea IE, încetând să sprijine a zecea și versiunile anterioare, limitând suportul la IE 11. Și din ce în ce mai mult, dezvoltatorii web au luxul de a ignora compatibilitatea IE.

Chiar și jQuery a încetat să mai suporte IE 8 și mai jos, începând de la versiunea 2.0, publicat în 2013. Și deși în unele cazuri suportul IE este încă necesar, de exemplu, pe site-uri mai vechi, aceste situații apar din ce în ce mai rar.

Cadre noi

De la apariția jQuery, au fost create multe cadre, inclusiv lideri moderni Reacţiona, Unghiular и Vue. Au două avantaje importante față de jQuery.

În primul rând, facilitează separarea interfeței cu utilizatorul în componente. Framework-urile sunt concepute pentru a gestiona randarea și actualizarea paginilor. Și jQuery este de obicei folosit doar pentru actualizare, lăsând sarcina de a furniza pagina inițială serverului.

Pe de altă parte, componentele React, Angular și Vue vă permit să cuplați strâns HTML, cod și chiar CSS. Așa cum împărțim baza de cod în multe funcții și clase autonome, capacitatea de a împărți interfața în componente reutilizabile facilitează construirea și întreținerea site-urilor complexe.

Al doilea avantaj este că cadrele mai recente aderă la o paradigmă declarativă, în care dezvoltatorul descrie cum ar trebui să arate interfața și lasă în sarcina cadrului să facă toate modificările necesare pentru a obține ceea ce se dorește. Această abordare este contrară abordării imperative care caracterizează codul jQuery.

În jQuery, notați în mod explicit pașii pentru a face orice modificări. Și într-un cadru declarativ spuneți: „Conform acestor date, interfața ar trebui să arate așa.” Acest lucru poate face scrierea codului fără erori mult mai ușoară.

Dezvoltatorii au adoptat noi abordări pentru dezvoltarea site-urilor web, motiv pentru care popularitatea jQuery a scăzut.

Când să folosești jQuery?

Deci când folosiți jQuery?

Dacă complexitatea proiectului crește, atunci este mai bine să începeți cu o altă bibliotecă sau cadru care vă permite să gestionați în mod semnificativ complexitatea. De exemplu, împărțiți interfața în componente. Utilizarea jQuery pe astfel de site-uri poate arăta bine la început, dar va duce rapid la un cod spaghetti unde nu ești sigur ce fragment afectează ce parte a paginii.

Am fost într-o astfel de situație, când încerc să fac orice schimbare, mi se pare o sarcină dificilă. Nu poți fi sigur că nu vei sparge nimic, deoarece selectoarele jQuery depind de structura HTML generată de server.

La celălalt capăt al scalei se află site-uri simple care necesită doar puțină interactivitate sau conținut dinamic. Nici în aceste cazuri nu aș utiliza jQuery implicit, pentru că puteți face mult mai multe cu API-urile native.

Chiar dacă am nevoie de ceva mai puternic, voi căuta o bibliotecă specializată, de ex. Axios pentru Ajax sau Animate.css pentru animații. Acest lucru va fi mai ușor decât încărcarea tuturor jQuery pentru o funcționalitate mică.

Cred că cel mai bun motiv pentru utilizarea jQuery este că oferă funcționalitate cuprinzătoare pentru front-end-ul unui site web. În loc să înveți o varietate de API-uri native sau biblioteci specializate, poți să citești doar documentația jQuery și să devii productiv instantaneu.

Abordarea imperativă nu se scalează bine, dar este mai ușor de învățat decât abordarea declarativă a altor biblioteci. Pentru un site cu capacități clar limitate, este mai bine să utilizați jQuery și să lucrați cu calm: biblioteca nu necesită asamblare sau compilare complexă.

În plus, jQuery este bun dacă sunteți încrezător că site-ul dvs. nu se va complica în timp și dacă nu vă pasă de funcționalitatea nativă, care cu siguranță va necesita scrierea mai multor cod decât jQuery.

De asemenea, puteți utiliza această bibliotecă dacă aveți nevoie să acceptați versiuni mai vechi de IE. Apoi jQuery vă va servi așa cum o făcea în vremurile când IE era cel mai popular browser.

prospection

jQuery nu va dispărea prea curând. Ea în curs de dezvoltareși mulți dezvoltatori preferă să folosească API-ul său, chiar dacă sunt disponibile metode native. Biblioteca a ajutat o întreagă generație de dezvoltatori să creeze site-uri web care funcționează cu orice browser. Deși a fost înlocuit în multe feluri de noi biblioteci, cadre și paradigme, jQuery a jucat un rol extrem de pozitiv în crearea web-ului modern.

Cu excepția cazului în care funcționalitatea jQuery se schimbă semnificativ, este probabil ca utilizarea bibliotecii să continue să scadă lent, dar constant în următorii câțiva ani. Noile site-uri web tind să fie construite folosind cadre mai moderne încă de la început, iar cazurile de utilizare potrivite pentru jQuery devin din ce în ce mai rare.

Unii oameni nu le place ritmul cu care instrumentele de dezvoltare web devin învechite, dar pentru mine este o dovadă a progresului rapid. jQuery ne-a permis să facem multe lucruri mai bine. Același lucru este valabil și pentru succesorii ei.

Sursa: www.habr.com

Adauga un comentariu