Historial e legado de jQuery

Historial e legado de jQuery
jQuery - este é o máis popular no mundo unha biblioteca JavaScript. A comunidade de desenvolvemento web creouna a finais da década de 2000, dando como resultado un rico ecosistema de sitios, complementos e marcos que usan jQuery baixo o capó.

Pero nos últimos anos, a súa condición de ferramenta principal para o desenvolvemento web erosionouse. Vexamos por que jQuery se popularizou e por que pasou de moda, e tamén en que casos aínda é recomendable usalo para crear sitios web modernos.

Breve historia de jQuery

John Resig (Xoán Resig) creou a primeira versión da biblioteca en 2005, e publicado en 2006-m, nun evento chamado BarCampNYC. Activado Sitio web oficial de jQuery o autor escribiu:

jQuery é unha biblioteca de Javascript baseada no lema: Javascript debería ser divertido de codificar. jQuery leva tarefas comúns e repetitivas, elimina todas as marcas innecesarias e fai que sexan curtas, elegantes e limpas.

jQuery ten dúas vantaxes principais. O primeiro é unha API conveniente para manipular páxinas web. En particular, ofrece métodos poderosos para seleccionar elementos. Non só pode seleccionar por ID ou clase, jQuery permítelle escribir expresións complexas, por exemplo, para seleccionar elementos en función das súas relacións con outros elementos:

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

Co paso do tempo, o mecanismo de selección converteuse nunha biblioteca separada Sizzle.

A segunda vantaxe da biblioteca era que abstraía as diferenzas entre os navegadores. Naqueles anos, era difícil escribir código que puidese funcionar de forma fiable en todos os navegadores.

A falta de estandarización fixo que os desenvolvedores necesitasen ter en conta as numerosas diferenzas entre os navegadores e os casos extremos. Bótalle un ollo este código fonte jQuery inicial e busca jQuery.browser. Aquí tes un exemplo:

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

E grazas a jQuery, os desenvolvedores poderían trasladar as preocupacións sobre todas estas trampas aos ombreiros do equipo que desenvolve a biblioteca.

Máis tarde, jQuery facilitou a implementación de tecnoloxías máis complexas como animacións e Ajax. A biblioteca converteuse efectivamente nunha dependencia estándar para sitios web. E hoxe alimenta unha gran parte de Internet. W3Techs cre iso O 74% dos sitios hoxe usan jQuery.

O control sobre o desenvolvemento de jQuery tamén se formalizou. En 2011 o equipo creou jQuery Board. E en 2012 jQuery Board transformado en jQuery Foundation.

En 2015, a Fundación jQuery fusionouse coa Fundación Dojo, para crear la Fundación JS, que logo se fusionou coa Fundación Node.js en 2019-m para crear Fundación OpenJS, dentro do cal jQuery era un dos "proxectos de avance».

Circunstancias cambiantes

Non obstante, nos últimos anos jQuery perdeu a súa popularidade. GitHub eliminou a biblioteca da interface do meu sitio. Bootstrap v5 desfacerse de jQueryporque é seu"maior dependencia do cliente para JavaScript normal"(actualmente 30 KB de tamaño, reducido e empaquetado). Varias tendencias no desenvolvemento web debilitaron a posición de jQuery como ferramenta esencial.

Navegadores

Por varias razóns, as diferenzas e limitacións do navegador fixéronse menos importantes. En primeiro lugar, a normalización mellorou. Os principais desenvolvedores de navegadores (Apple, Google, Microsoft e Mozilla) están a traballar xuntos para desenvolver estándares web no marco Grupo de traballo de tecnoloxía de aplicacións de hipertexto web.
Aínda que os navegadores aínda difieren entre si en varias formas importantes, os provedores teñen polo menos medios para buscar e crear unha base de datos común en lugar de guerra permanente xuntos. En consecuencia, as API do navegador gañaron novas capacidades. Por exemplo, Obter a API capaz de substituír funcións 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étodos querySelector и querySelectorAll selectores de jQuery duplicados:

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

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

Agora podes manipular clases de elementos usando lista de clases:

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

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

A web Quizais non necesites jQuery Enuméranse varias situacións máis nas que o código jQuery se pode substituír por código nativo. Algúns desenvolvedores sempre seguen con jQuery porque simplemente non saben sobre as novas API, pero cando o fan, comezan a usar a biblioteca con menos frecuencia.

O uso de funcións nativas mellora o rendemento da páxina. Moitas efectos de animación de jQuery agora podes implementar moito máis eficaz usando CSS.

A segunda razón é que os navegadores actualízanse moito máis rápido que antes. A maioría deles usan estratexia de renovación "perenne"., coa excepción de Apple Safari. Pódense actualizar en segundo plano sen a participación do usuario e non están vinculados ás actualizacións do SO.

Isto significa que as novas funcións do navegador e as correccións de erros distribúense moito máis rápido e os desenvolvedores non teñen que esperar ata que Podo usar? alcanzará un nivel aceptable. Poden usar con confianza novas funcións e API sen descargar jQuery ou polyfills.

A terceira razón é que Internet Explorer achégase a un estado de completa irrelevancia. IE foi durante moito tempo a perdición do desenvolvemento web en todo o mundo. Os seus erros foron xeneralizados, e debido a que IE dominaba a década de 2000 e non utilizaba unha estratexia de actualización perenne, as versións máis antigas aínda son comúns.

En 2016, Microsoft acelerou o desmantelamento de IE, deixando de apoiar versións décimas e anteriores, limitando a compatibilidade con IE 11. E cada vez máis, os desenvolvedores web teñen o luxo de ignorar a compatibilidade con IE.

Incluso jQuery deixou de admitir IE 8 e inferior a partir de versión 2.0, publicado en 2013. E aínda que nalgúns casos aínda é necesario o soporte de IE, por exemplo, en sitios máis antigos, estas situacións xorden cada vez con menos frecuencia.

Novos marcos

Desde a aparición de jQuery, creáronse moitos frameworks, incluídos os líderes modernos Reaccionar, Angular и Vue. Teñen dúas vantaxes importantes sobre jQuery.

En primeiro lugar, facilitan a separación da interface de usuario en compoñentes. Os marcos están deseñados para xestionar a representación e actualización de páxinas. E jQuery adoita usarse só para actualizar, deixando a tarefa de proporcionar a páxina inicial ao servidor.

Por outra banda, os compoñentes React, Angular e Vue permítenche acoplar HTML, código e incluso CSS. Do mesmo xeito que dividimos a base de código en moitas funcións e clases autónomas, a capacidade de dividir a interface en compoñentes reutilizables facilita a creación e o mantemento de sitios complexos.

A segunda vantaxe é que os frameworks máis recentes adhírense a un paradigma declarativo, no que o desenvolvedor describe como debería ser a interface e deixa que o framework faga todos os cambios necesarios para conseguir o que se desexa. Este enfoque é contrario ao enfoque imperativo que caracteriza o código jQuery.

En jQuery, escribe explícitamente os pasos para facer calquera cambio. E nun marco declarativo dis: "Segundo estes datos, a interface debería verse así". Isto pode facilitar moito a escritura de código sen erros.

Os desenvolvedores adoptaron novos enfoques para o desenvolvemento de sitios web, polo que a popularidade de jQuery diminuíu.

Cando usar jQuery?

Entón cando debe ser usar jQuery?

Se a complexidade do proxecto aumenta, entón é mellor comezar con outra biblioteca ou marco que lle permita xestionar a complexidade de forma significativa. Por exemplo, divide a interface en compoñentes. O uso de jQuery nestes sitios pode parecer ben ao principio, pero levará rapidamente a un código espagueti no que non estás seguro de que fragmento afecta a que parte da páxina.

Estiven nunha situación así, cando intento facer algún cambio, paréceme unha tarefa difícil. Non podes estar seguro de que non romperás nada porque os selectores de jQuery dependen da estrutura HTML xerada polo servidor.

No outro extremo da escala están sitios sinxelos que só requiren un pouco de interactividade ou contido dinámico. Tampouco utilizaría jQuery por defecto nestes casos, porque hai moito máis que podes facer coas API nativas.

Aínda que necesite algo máis potente, buscarei unha biblioteca especializada, p. eixes para o Ajax ou Animádeo.css para animacións. Isto será máis doado que cargar todo jQuery para unha pequena funcionalidade.

Creo que a mellor razón para usar jQuery é que ofrece unha funcionalidade completa para o front end dun sitio web. En lugar de aprender unha variedade de API nativas ou bibliotecas especializadas, podes ler só a documentación de jQuery e ser produtivo ao instante.

O enfoque imperativo non escala ben, pero é máis fácil de aprender que o enfoque declarativo doutras bibliotecas. Para un sitio con capacidades claramente limitadas, é mellor usar jQuery e traballar con calma: a biblioteca non require montaxe ou compilación complexa.

Ademais, jQuery é bo se estás seguro de que o teu sitio non se complicará co paso do tempo e se non che importa a funcionalidade nativa, o que certamente requirirá escribir máis código que jQuery.

Tamén podes usar esta biblioteca se precisas admitir versións antigas de IE. Entón jQuery servirache como o facía na época en que IE era o navegador máis popular.

prospección

jQuery non desaparecerá pronto. Ela desenvolvendo activamente, e moitos desenvolvedores prefiren usar a súa API, aínda que hai métodos nativos dispoñibles. A biblioteca axudou a toda unha xeración de desenvolvedores a crear sitios web que funcionen en calquera navegador. Aínda que foi substituído de moitas maneiras por novas bibliotecas, marcos e paradigmas, jQuery tivo un papel moi positivo na creación da web moderna.

A menos que a funcionalidade de jQuery cambie significativamente, é probable que o uso da biblioteca continúe diminuíndo lentamente pero constantemente nos próximos anos. Os novos sitios web adoitan construírse utilizando marcos máis modernos desde o principio, e os casos de uso axeitados para jQuery son cada vez máis raros.

Algunhas persoas non lles gusta o ritmo ao que as ferramentas de desenvolvemento web quedan obsoletas, pero para min é unha proba de progreso rápido. jQuery permitiunos facer moitas cousas mellor. O mesmo ocorre cos seus sucesores.

Fonte: www.habr.com

Engadir un comentario