Història i llegat de jQuery

Història i llegat de jQuery
jQuery - aquesta és la més popular al món una biblioteca de JavaScript. La comunitat de desenvolupament web el va crear a finals dels anys 2000, donant com a resultat un ric ecosistema de llocs, connectors i marcs que utilitzaven jQuery sota el capó.

Però en els darrers anys, el seu estatus com a eina principal per al desenvolupament web s'ha erosionat. Vegem per què jQuery es va popularitzar i per què va passar de moda, i també en quins casos encara és recomanable utilitzar-lo per crear llocs web moderns.

Una breu història de jQuery

Joan Resig (Joan Resig) va crear la primera versió de la biblioteca l'any 2005 i publicat l'any 2006-m, en un acte anomenat BarCampNYC. Encès Lloc web oficial de jQuery l'autor va escriure:

jQuery és una biblioteca de Javascript basada en el lema: Javascript hauria de ser divertit de codificar. jQuery fa tasques comunes i repetitives, elimina totes les marques innecessàries i les fa curtes, elegants i netes.

jQuery té dos avantatges principals. El primer és una API convenient per manipular pàgines web. En particular, proporciona mètodes potents per seleccionar elements. No només podeu seleccionar per identificador o classe, jQuery us permet escriure expressions complexes, per exemple, per seleccionar elements en funció de les seves relacions amb altres elements:

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

Amb el temps, el mecanisme de selecció es va convertir en una biblioteca separada Enrenou.

El segon avantatge de la biblioteca era que abstraia les diferències entre navegadors. En aquells anys, era difícil escriure codi que pogués funcionar de manera fiable en tots els navegadors.

La manca d'estandardització va fer que els desenvolupadors havien de tenir en compte les nombroses diferències entre navegadors i casos de punta. Fes una ullada a aquest primer codi font de jQuery i cerqueu jQuery.browser. Aquí teniu un exemple:

// 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 gràcies a jQuery, els desenvolupadors podrien traslladar les preocupacions sobre totes aquestes trampes a les espatlles de l'equip que desenvolupa la biblioteca.

Més tard, jQuery va facilitar la implementació de tecnologies més complexes com ara animacions i Ajax. La biblioteca s'ha convertit efectivament en una dependència estàndard per als llocs web. I avui alimenta una gran part d'Internet. W3Techs ho creu El 74% dels llocs actuals utilitzen jQuery.

El control sobre el desenvolupament de jQuery també s'ha formalitzat més. L'any 2011 l'equip creat jQuery Board. I el 2012 jQuery Board transformat en jQuery Foundation.

El 2015, la Fundació jQuery es va fusionar amb la Fundació Dojo, per crear la Fundació JS, que després es va fusionar amb la Fundació Node.js en 2019-m per crear Fundació OpenJS, dins del qual jQuery era un dels "projectes innovadors».

Circumstàncies canviants

No obstant això, en els últims anys jQuery va perdre la seva popularitat. GitHub he eliminat la biblioteca de la interfície del meu lloc. Bootstrap v5 desfer-se de jQueryperquè és seu"la major dependència del client per a JavaScript normal"(actualment 30 KB de mida, minificat i empaquetat). Diverses tendències en el desenvolupament web han debilitat la posició de jQuery com a eina essencial.

Navegadors

Per diverses raons, les diferències i limitacions del navegador han esdevingut menys importants. En primer lloc, l'estandardització ha millorat. Els principals desenvolupadors de navegadors (Apple, Google, Microsoft i Mozilla) estan treballant junts per desenvolupar-lo estàndards web dins del marc Grup de treball de tecnologia d'aplicacions d'hipertext web.
Tot i que els navegadors encara difereixen entre si en diverses maneres importants, els venedors almenys tenen un mitjà per cercar i crear una base de dades comuna en lloc de guerra permanent junts. En conseqüència, les API del navegador han adquirit noves capacitats. Per exemple, Fetch API capaç de substituir funcions Ajax de 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);
    });

Mètodes querySelector и querySelectorAll selectors de jQuery duplicats:

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

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

Ara podeu manipular classes d'elements utilitzant classList:

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

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

El lloc És possible que no necessiteu jQuery S'enumeren diverses situacions més en què el codi jQuery es pot substituir per codi natiu. Alguns desenvolupadors sempre s'adhereixen a jQuery perquè simplement no coneixen les noves API, però quan ho fan, comencen a utilitzar la biblioteca amb menys freqüència.

L'ús de funcions natives millora el rendiment de la pàgina. Molts efectes d'animació de jQuery ara pots implementar molt més eficaç utilitzant CSS.

La segona raó és que els navegadors s'actualitzen molt més ràpid que abans. La majoria d'ells utilitzen estratègia de renovació "perenne"., amb l'excepció d'Apple Safari. Es poden actualitzar en segon pla sense la implicació de l'usuari i no estan vinculats a les actualitzacions del sistema operatiu.

Això vol dir que les noves funcions del navegador i les correccions d'errors es distribueixen molt més ràpidament i els desenvolupadors no han d'esperar fins al Puc utilitzar-lo arribarà a un nivell acceptable. Poden utilitzar amb confiança noves funcions i API sense descarregar jQuery o polyfills.

La tercera raó és que Internet Explorer s'acosta a un estat de total irrellevància. IE ha estat durant molt de temps el mal del desenvolupament web a tot el món. Els seus errors estaven generalitzats, i com que IE va dominar la dècada del 2000 i no va utilitzar una estratègia d'actualització perenne, les versions anteriors encara són habituals.

El 2016, Microsoft va accelerar el desmantellament d'IE, deixant de donar suport la desena i les versions anteriors, limitant el suport a IE 11. I cada cop més, els desenvolupadors web tenen el luxe d'ignorar la compatibilitat amb IE.

Fins i tot jQuery va deixar de donar suport a IE 8 i posteriors a partir de versió 2.0, publicat el 2013. I encara que en alguns casos encara es requereix suport d'IE, per exemple, en llocs més antics, aquestes situacions es produeixen cada cop amb menys freqüència.

Nous marcs

Des de l'aparició de jQuery, s'han creat molts frameworks, inclosos els líders moderns Reaccionar, Angular и Vue. Tenen dos avantatges importants respecte a jQuery.

En primer lloc, faciliten la separació de la interfície d'usuari en components. Els marcs estan dissenyats per gestionar la representació i l'actualització de pàgines. I jQuery s'utilitza normalment només per a l'actualització, deixant la tasca de proporcionar la pàgina inicial al servidor.

D'altra banda, els components React, Angular i Vue us permeten combinar estretament HTML, codi i fins i tot CSS. De la mateixa manera que dividim la base de codi en moltes funcions i classes autònomes, la capacitat de dividir la interfície en components reutilitzables facilita la creació i el manteniment de llocs complexos.

El segon avantatge és que els frameworks més recents s'adhereixen a un paradigma declaratiu, en el qual el desenvolupador descriu com hauria de ser la interfície i deixa que el framework faci tots els canvis necessaris per aconseguir el que es desitja. Aquest enfocament és contrari a l'enfocament imperatiu que caracteritza el codi jQuery.

A jQuery, escriviu explícitament els passos per fer qualsevol canvi. I en un marc declaratiu dius: "Segons aquestes dades, la interfície hauria de ser així". Això pot fer que escriure codi sense errors sigui molt més fàcil.

Els desenvolupadors han adoptat nous enfocaments per al desenvolupament de llocs web, per això la popularitat de jQuery ha disminuït.

Quan utilitzar jQuery?

Doncs quan ha de ser utilitzar jQuery?

Si la complexitat del projecte augmenta, és millor començar amb una altra biblioteca o marc que us permeti gestionar de manera significativa la complexitat. Per exemple, dividiu la interfície en components. L'ús de jQuery en aquests llocs pot semblar bé al principi, però ràpidament donarà lloc a un codi spaghetti on no esteu segur de quin fragment afecta quina part de la pàgina.

He estat en una situació així, quan intento fer qualsevol canvi, em sembla una tasca difícil. No podeu estar segur que no trencareu res perquè els selectors de jQuery depenen de l'estructura HTML generada pel servidor.

A l'altre extrem de l'escala hi ha llocs senzills que només requereixen una mica d'interactivitat o contingut dinàmic. Tampoc em faria jQuery per defecte en aquests casos, perquè hi ha molt més que podeu fer amb les API natives.

Encara que necessito alguna cosa més potent, buscaré una biblioteca especialitzada, p. axis per a l'Ajax o Animate.css per a animacions. Això serà més fàcil que carregar tot el jQuery per a una petita funcionalitat.

Crec que la millor raó per utilitzar jQuery és que ofereix una funcionalitat completa per a la interfície d'un lloc web. En lloc d'aprendre una varietat d'API natives o biblioteques especialitzades, podeu llegir només la documentació de jQuery i ser instantàniament productiu.

L'enfocament imperatiu no s'escala bé, però és més fàcil d'aprendre que l'enfocament declaratiu d'altres biblioteques. Per a un lloc amb capacitats clarament limitades, és millor utilitzar jQuery i treballar amb calma: la biblioteca no requereix un muntatge ni una compilació complexos.

A més, jQuery és bo si esteu segur que el vostre lloc no es complicarà amb el temps i si no us importa la funcionalitat nativa, que sens dubte requerirà escriure més codi que jQuery.

També podeu utilitzar aquesta biblioteca si necessiteu suportar versions anteriors d'IE. Aleshores, jQuery us servirà com ho feia en els dies en què IE era el navegador més popular.

prospecció

jQuery no desapareixerà aviat. Ella desenvolupant-se activament, i molts desenvolupadors prefereixen utilitzar la seva API, encara que hi hagi mètodes natius disponibles. La biblioteca ha ajudat a tota una generació de desenvolupadors a crear llocs web que funcionen amb qualsevol navegador. Tot i que ha estat substituït de moltes maneres per noves biblioteques, marcs i paradigmes, jQuery ha jugat un paper molt positiu en la creació de la web moderna.

A menys que la funcionalitat de jQuery canviï significativament, és probable que l'ús de la biblioteca continuï disminuint lentament però de manera constant durant els propers anys. Els nous llocs web solen crear-se amb marcs més moderns des del principi, i els casos d'ús adequats per a jQuery són cada cop més rars.

A algunes persones no els agrada el ritme al qual les eines de desenvolupament web queden obsoletes, però per a mi és una evidència d'un progrés ràpid. jQuery ens ha permès fer moltes coses millor. El mateix passa amb els seus successors.

Font: www.habr.com

Afegeix comentari