jQuery -
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 (
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ă
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
// 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ă
Controlul asupra dezvoltării jQuery a devenit, de asemenea, mai formalizat. În 2011 echipa
În 2015, Fundația jQuery a fuzionat cu Fundația Dojo,
Circumstanțele în schimbare
Cu toate acestea, în ultimii ani jQuery
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
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
// 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
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
Acum puteți manipula clasele de elemente folosind
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
Site-ul
Utilizarea funcțiilor native îmbunătățește performanța paginii. Mulți
Al doilea motiv este că browserele sunt actualizate mult mai repede decât înainte. Majoritatea folosesc
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
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,
Chiar și jQuery a încetat să mai suporte IE 8 și mai jos, începând de la
Cadre noi
De la apariția jQuery, au fost create multe cadre, inclusiv lideri moderni
Î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 să 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.
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
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