
jQuery — bibliotecă JavaScript din lume. Comunitatea dezvoltatorilor web a creat-o la sfârșitul anilor 2000, ceea ce a dus la apariția unui ecosistem bogat de site-uri, plugin-uri și framework-uri care folosesc jQuery la bază.
Dar în ultimii ani, statutul său de instrument principal pentru dezvoltarea web a început să vacile. Să vedem de ce jQuery a devenit populară și de ce a ieșit din modă, dar și în ce situații este încă oportun să o folosești pentru crearea de site-uri moderne.
O istorie pe scurt a jQuery
John Resig () a creat prima versiune a bibliotecii în 2005, iar -a, la un eveniment numit BarCampNYC. Pe autorul a scris:
jQuery este o bibliotecă JavaScript, bazată pe deviza: Programarea în JavaScript trebuie să fie plăcută. jQuery preia sarcinile frecvente, repetitive, elimina toată markup-ul inutil și le face scurte, elegante și clare.
jQuery are două mari avantaje. Primul este API-ul convenabil pentru manipularea paginilor web. În special, oferă metode puternice pentru selectarea elementelor. Poți alege nu doar după ID sau clase, jQuery permite scrierea de expresii complexe, de exemplu, pentru a selecta 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 evoluat într-o bibliotecă separată .
Al doilea avantaj al bibliotecii a fost că a abstractizat diferențele dintre browsere. În acele vremuri, era dificil să scrii cod care să funcționeze fiabil în toate browserele.
Lipsa standardizării însemna că dezvoltatorii trebuiau să țină cont de numeroasele diferențe dintre browsere și cazurile limită. Uită-te la și caută după 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 puteau să-și transfere grijile legate de toate aceste capcane pe umerii echipei care dezvolta biblioteca.
Ulterior, jQuery a facilitat introducerea unor tehnologii mai complexe, cum ar fi animațiile și Ajax. Biblioteca a devenit, de fapt, o dependență standard pentru site-urile web. Și astăzi, asigură funcționarea unei părți uriașe din internet. W3Techs consideră că .
Controlul asupra dezvoltării jQuery a devenit, de asemenea, mai formalizat. În 2011, echipa . Iar în 2012, jQuery Board.
În 2015, jQuery Foundation s-a alăturat Dojo Foundation,, care apoi s-a unit cu Node.js Foundation în-ul pentru a crea, în cadrul căreia jQuery a fost unul dintre „.»
Circumstanțele schimbătoare
Totuși, în ultimii ani, jQuery . GitHub. Bootstrap v5 , deoarece este „„ (în prezent având o dimensiune de 30 KB, minificată și comprimată). Vor exista câteva tendințe în dezvoltarea web care au slăbit poziția jQuery ca instrument necesar.
Butoane
Din mai multe motive, diferențele și limitările browserelor au devenit mai puțin relevante. În primul rând, standardizarea s-a îmbunătățit. Principalele companii care dezvoltă browsere (Apple, Google, Microsoft și Mozilla) colaborează pentru a dezvolta în cadrul.
Deși browserele încă diferă unele de altele în mai multe aspecte importante, furnizorii au acum măsuri pentru a găsi și crea o bază comună în loc de între ei. Prin urmare, API-urile browserelor au câștigat noi capacități. De exemplu, poate înlocui 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 și replică instrumentele de selecție din jQuery:
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');Manipularea claselor elementelor se poate face acum cu ajutorul :
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');se menționează: sunt enumerate și alte situații în care codul jQuery poate fi înlocuit cu cod nativ. Unii dezvoltatori continuă să folosească jQuery, deoarece pur și simplu nu știu despre noile API-uri, dar când află, încep să folosească mai rar această bibliotecă.
Utilizarea funcționalităților native poate îmbunătăți performanța paginilor. Multe pot fi acum implementate folosind CSS.
A doua cauză este că browserele se actualizează mult mai repede decât înainte. În majoritatea lor se aplică , cu excepția Apple Safari. Ele pot primi actualizări în fundal fără a necesita intervenția utilizatorului și nu sunt legate de actualizările sistemului de operare.
Aceasta înseamnă că noile capacități ale browserelor și remedierile de bug-uri sunt distribuite mult mai repede, iar dezvoltatorii nu trebuie să aștepte până când cota ajunge la un nivel acceptabil. Ei pot folosi cu încredere noile caracteristici și API-uri fără a încărca jQuery sau polyfill-uri.
A treia cauză este că Internet Explorer se apropie de starea de desuetudine totală. IE a fost de mult un coșmar pentru dezvoltarea web în întreaga lume. Bug-urile caracteristice au fost răspândite pe scară largă, iar din moment ce IE a dominat anii 2000 și nu a folosit o strategie de actualizare „evergreen”, versiunile sale vechi sunt încă frecvent întâlnite.
În 2016, Microsoft a accelerat procesul de retragere a IE din uz, versiunile zece și mai vechi, limitându-se la susținerea IE 11. Și din ce în ce mai des, dezvoltatorii web își pot permite luxul de a ignora compatibilitatea cu IE.
Chiar și jQuery a încetat să mai susțină IE 8 și versiunile anterioare începând cu lansată în 2013. Și, deși în unele cazuri încă este necesar suportul pentru IE, de exemplu pe site-uri vechi, aceste situații se întâlnesc din ce în ce mai rar.
Noi framework-uri
De la apariția jQuery-ului, au fost create numeroase framework-uri, inclusiv lideri moderni , și . Ele au două avantaje importante față de jQuery.
În primul rând, permit separarea ușoară a interfeței utilizatorului în componente. Framework-urile sunt proiectate să se ocupe de redarea și actualizarea paginii. Iar jQuery este folosit de obicei doar pentru actualizare, lăsând sarcina de a oferi pagina inițială pe server.
Pe de altă parte, componentele React, Angular și Vue permit o legătură strânsă între HTML, cod și chiar CSS. Așa cum separăm baza de cod în funcții și clase auto-suficiente, astfel și posibilitatea de a separa interfața în componente reutilizabile simplifică construirea și întreținerea site-urilor complexe.
Al doilea avantaj este că framework-urile mai recente aderă la paradigma declarativă, în cadrul căreia dezvoltatorul descrie cum ar trebui să arate interfața, iar realizarea tuturor modificărilor necesare pentru a atinge rezultatul dorit este lăsată în seama framework-ului. Această abordare contrazice abordarea imperativă, caracteristică codului jQuery.
În jQuery, specifici în mod explicit pașii pentru a face orice schimbare. Iar într-un framework declarativ, spui: „Conform acestor date, interfața ar trebui să arate astfel”. Acest lucru poate facilita semnificativ scrierea codului fără erori.
Dezvoltatorii au adoptat noi abordări în dezvoltarea site-urilor, motiv pentru care popularitatea jQuery a scăzut.
Când să folosești jQuery?
Atunci când urmărește să folosești jQuery?
Dacă complexitatea proiectului va crește, este mai bine să începi cu o altă bibliotecă sau cadru care permite gestionarea semnificativă a complexității. De exemplu, împărțind interfața în componente. Utilizarea jQuery pe astfel de site-uri, la început, poate părea acceptabilă, dar acest lucru va duce rapid la apariția unui cod de tip spaghetti, când nu vei fi sigur ce fragment influențează ce parte a paginii.
Am fost în situații asemănătoare, la încercarea de a face orice modificare se simte ca o sarcină dificilă. Nu poți fi sigur că nu vei strica nimic, pentru că selectoarele jQuery depind de structura HTML creată de server.
La celălalt capăt al scalei se află site-urile simple, care necesită doar un pic de interactivitate sau conținut dinamic. În astfel de cazuri, nu aș folosi jQuery în mod implicit, deoarece cu API-urile native poți realiza mult mai mult.
Chiar dacă îmi va trebui ceva mai puternic, voi căuta o bibliotecă specializată, de exemplu, pentru Ajax sau pentru animații. Va fi mai simplu decât să încarci întreaga jQuery pentru funcționalitate mică.
Cred că cel mai bun motiv pentru a folosi jQuery este că oferă o funcționalitate cuprinzătoare pentru munca de front-end a site-ului. În loc să înveți diverse API-uri native sau biblioteci specializate, poți citi doar documentația jQuery și vei deveni productiv imediat.
Abordarea imperativă nu se scalabilă bine, dar este mai ușor de stăpânit decât abordarea declarativă a altor biblioteci. Pentru un site cu capabilități evident limitate, este mai bine să aplici jQuery și să lucrezi liniștit: biblioteca nu necesită o compilare sau asamblare complexă.
În plus, jQuery este bună în acele cazuri când ești sigur că site-ul nu va deveni mai complex în timp, și dacă nu îți pasă de funcționalitatea nativă care, fără îndoială, va necesita scrierea mai multor coduri decât jQuery.
De asemenea, poți aplica această bibliotecă dacă trebuie să susții versiunile vechi de IE. Atunci jQuery îți va fi de folos așa cum era pe vremuri, când IE era cel mai popular browser.
Privind spre viitor
jQuery nu va dispărea curând. Ea , și mulți dezvoltatori preferă să utilizeze API-ul său, chiar și atunci când metodele native sunt disponibile. Biblioteca a ajutat o întreagă generație de dezvoltatori să creeze site-uri care funcționează pe orice browser. Și, deși în multe privințe a fost înlocuită de noi biblioteci, cadre și paradigme, jQuery a jucat un rol enorm și pozitiv în crearea webului modern.
Dacă funcționalitatea jQuery nu se va schimba semnificativ, este foarte probabil ca, în următorii câțiva ani, utilizarea bibliotecii să continue să scadă lent, dar constant. Noile site-uri web sunt, de obicei, create de la bun început folosind cadre mai moderne, iar scenariile de utilizare adecvate pentru jQuery devin tot mai rare.
Unii nu le place ritmul rapid al învechirii instrumentelor pentru dezvoltarea web, dar pentru mine este o dovadă a progresului rapid. jQuery ne-a permis să facem multe lucruri mai bine. Același lucru este adevărat și pentru succesorii săi.
Sursa: habr.com
