
jQuery — do mundo. A comunidade de desenvolvedores web a criou no final dos anos 2000, o que levou ao surgimento de um rico ecossistema de sites, plugins e frameworks que utilizam o jQuery em seus bastidores.
Mas, nos últimos anos, seu status como principal ferramenta para desenvolvimento web tem vacilado. Vamos ver por que o jQuery se tornou popular e por que saiu de moda, além de em quais casos ainda é sensato utilizá-lo para criar sites modernos.
Uma breve história do jQuery
John Resig () criou a primeira versão da biblioteca em 2005 e - em um evento chamado BarCampNYC. No o autor escreveu:
jQuery é uma biblioteca JavaScript que se baseia no lema: Programar em JavaScript deve ser uma experiência agradável. O jQuery pega tarefas comuns e repetitivas, elimina toda a marcação desnecessária e as torna curtas, elegantes e compreensíveis.
O jQuery possui duas principais qualidades. Primeiro, é uma API conveniente para manipular páginas web. Em particular, fornece métodos poderosos para seleção de elementos. É possível selecionar não apenas por ID ou classes; o jQuery permite escrever expressões complexas, por exemplo, para selecionar elementos com base em suas relações com outros elementos:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');Com o tempo, o mecanismo de seleção se transformou em uma biblioteca separada chamada .
A segunda qualidade da biblioteca era que ela abstraía as diferenças entre navegadores. Naquela época, era difícil escrever código que funcionasse de forma confiável em todos os navegadores.
A falta de padronização significava que os desenvolvedores precisavam considerar inúmeras diferenças entre navegadores e casos limites. Dê uma olhada no e procure por jQuery.browser. Aqui está um dos exemplos:
// 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 graças ao jQuery, os desenvolvedores puderam transferir as preocupações sobre todas essas armadilhas para as costas da equipe que desenvolvia a biblioteca.
Mais tarde, o jQuery facilitou a implementação de tecnologias mais complexas, como animações e Ajax. A biblioteca acabou se tornando um padrão para dependência em sites. E hoje ela mantém uma enorme parte da internet. O W3Techs estima que .
O controle sobre o desenvolvimento do jQuery também se tornou mais formalizado. Em 2011, a equipe . E em 2012, o jQuery Board.
Em 2015, a jQuery Foundation se juntou à Dojo Foundation,, que então se uniu à Node.js Foundation em-m para formar a, na qual jQuery foi um dos ".»
Circunstâncias em mudança
No entanto, nos últimos anos, jQuery . O GitHub. O Bootstrap v5 , porque essa é sua "" (atualmente com um tamanho de 30 KB, minificado e compactado). Algumas tendências no desenvolvimento web enfraqueceram a posição do jQuery como uma ferramenta essencial.
Navegadores
Por várias razões, as diferenças e limitações entre navegadores tornaram-se menos importantes. Primeiro, a padronização melhorou. Os principais desenvolvedores de navegadores (Apple, Google, Microsoft e Mozilla) estão desenvolvendo em conjunto projeto.
Embora os navegadores ainda sejam diferentes em vários aspectos importantes, os vendedores pelo menos têm um meio de encontrar e criar uma base comum em vez de entre si. Consequentemente, as APIs dos navegadores ganharam novas funcionalidades. Por exemplo, é capaz de substituir as funções Ajax do 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 e duplicam as ferramentas de seleção do jQuery:
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');Manipular classes de elementos agora pode ser feito com :
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');está escrito: listou ainda mais algumas situações em que o código jQuery pode ser substituído por código nativo. Alguns desenvolvedores ainda usam jQuery, porque simplesmente não conhecem as novas APIs, mas quando descobrem, começam a usar essa biblioteca com menos frequência.
Usar recursos nativos pode melhorar o desempenho das páginas. Muitos agora podem ser implementados com CSS.
A segunda razão é que os navegadores estão sendo atualizados muito mais rapidamente do que antes. A maioria deles aplica a , exceto o Apple Safari. Eles podem ser atualizados em segundo plano sem intervenção do usuário e não estão atrelados a atualizações de sistema operacional.
Isso significa que novos recursos e correções de bugs dos navegadores são disseminados muito mais rapidamente, e os desenvolvedores não precisam esperar que a participação alcance um nível aceitável. Eles podem usar novos recursos e APIs com confiança, sem carregar o jQuery ou polifills.
A terceira razão é que o Internet Explorer está se aproximando de um estado de total obsolescência. O IE há muito tempo é um problema para o desenvolvimento web em todo o mundo. Os bugs característicos do IE eram amplamente disseminados e, como o IE dominou nos anos 2000 e não adotou uma estratégia de atualização contínua, versões antigas ainda são frequentemente encontradas.
Em 2016, a Microsoft acelerou a desativação do IE, versões 10 e anteriores, limitando-se a suportar o IE 11. E cada vez mais os desenvolvedores web podem se dar ao luxo de ignorar a compatibilidade com o IE.
Até mesmo o jQuery parou de suportar o IE 8 e anterior a partir de , lançada em 2013. E embora em alguns casos ainda seja necessário o suporte ao IE, como em sites antigos, essas situações estão se tornando cada vez mais raras.
Novos frameworks
Desde o surgimento do jQuery, muitos frameworks foram criados, incluindo os líderes modernos , e . Eles têm duas importantes vantagens em relação ao jQuery.
Primeiramente, eles permitem dividir facilmente a interface do usuário em componentes. Os frameworks são projetados para lidar com a renderização e atualização da página. O jQuery, por outro lado, é normalmente usado apenas para atualizações, deixando ao servidor a tarefa de fornecer a página inicial.
Por outro lado, os componentes do React, Angular e Vue permitem uma estreita integração entre HTML, código e até CSS. Assim como dividimos a base de código em muitas funções e classes autossuficientes, a capacidade de dividir a interface em componentes reutilizáveis facilita a construção e manutenção de sites complexos.
A segunda vantagem é que os frameworks mais modernos seguem a abordagem declarativa, em que o desenvolvedor descreve como a interface deve parecer, enquanto a execução de todas as mudanças necessárias para alcançar o desejado é feita pelo framework. Essa abordagem contrasta com a abordagem imperativa, característica do código jQuery.
No jQuery, você especifica explicitamente os passos para fazer alguma mudança. Em um framework declarativo, você diz: "Com base nesses dados, a interface deve parecer assim". Isso pode facilitar bastante a escrita de código sem bugs.
Os desenvolvedores adotaram novas abordagens para o desenvolvimento de sites, o que resultou em uma diminuição da popularidade do jQuery.
Quando usar jQuery?
Então, quando devemos deve usar o jQuery?
Se a complexidade do projeto aumentar, é melhor começar com outra biblioteca ou framework que permita gerenciar a complexidade de forma mais significativa. Por exemplo, dividindo a interface em componentes. O uso do jQuery em tais sites inicialmente pode parecer aceitável, mas isso rapidamente levará à criação de código espaguete, onde você não terá certeza de qual fragmento afeta qual parte da página.
Já estive nessa situação, onde qualquer tentativa de fazer uma alteração parece uma tarefa difícil. Não se pode ter certeza de que nada será quebrado, porque os seletores do jQuery dependem da estrutura HTML criada pelo servidor.
Do outro lado do espectro estão os sites simples que precisam apenas de um pouco de interatividade ou conteúdo dinâmico. Nesses casos, eu também não usaria jQuery por padrão, pois com as APIs nativas, é possível fazer muito mais.
Mesmo que eu precise de algo mais potente, eu procuraria uma biblioteca especializada, como para Ajax ou para animações. Isso será mais simples do que carregar todo o jQuery por uma funcionalidade menor.
Acredito que a melhor justificativa para usar jQuery é que ela oferece uma funcionalidade abrangente para trabalhar no front-end do site. Em vez de estudar várias APIs nativas ou bibliotecas especializadas, você pode apenas ler a documentação do jQuery e rapidamente se tornará produtivo.
A abordagem imperativa não escala bem, mas é mais fácil de aprender do que a abordagem declarativa de outras bibliotecas. Para um site com recursos claramente limitados, é melhor aplicar jQuery e trabalhar tranquilamente: a biblioteca não exige montagem ou compilação complexas.
Além disso, o jQuery é bom nos casos em que você tem certeza de que o site não se tornará mais complexo com o tempo e se você não se importa com a funcionalidade nativa, que, sem dúvida, exigirá escrever mais código do que o jQuery.
Você também pode aplicar essa biblioteca se precisar dar suporte a versões antigas do IE. Então, o jQuery servirá para você como nos tempos em que o IE era o navegador mais popular.
Uma perspectiva futura
O jQuery não vai desaparecer tão cedo. Ela , e muitos desenvolvedores preferem usar sua API, mesmo com a disponibilidade de métodos nativos. A biblioteca ajudou toda uma geração de desenvolvedores a criar sites que funcionam em qualquer navegador. E embora em muitos aspectos tenha sido substituída por novas bibliotecas, frameworks e paradigmas, jQuery desempenhou um papel imenso e positivo na criação da web moderna.
Se a funcionalidade do jQuery não mudar substancialmente, é bem possível que, nos próximos anos, o uso da biblioteca continue a diminuir lenta, mas constantemente. Novos sites geralmente são criados desde o início usando frameworks mais modernos, e os cenários adequados para usar jQuery estão se tornando cada vez mais raros.
Algumas pessoas não gostam da rapidez com que as ferramentas para desenvolvimento web se tornam obsoletas, mas para mim isso é um sinal de progresso rápido. O jQuery nos permitiu fazer muitas coisas melhor. O mesmo se aplica a seus sucessores.
Fonte: habr.com
