domingo, 12 de junho de 2022

Single Page Applications

Quando iniciei a minha carreira (optei por atuar na área de desenvolvimento) a maioria dos sistemas eram desenvolvidos em plataforma WEB. 

As tecnologias usadas a época para desenvolver esse tipo de sistema eram ASP 3.0, PHP, JSP, ColdFusion, Javascript, entre outras. Todas essas tecnologias se baseavam na arquitetura do tipo cliente/servidor, aonde um usuário, através de um navegador (browser) fazia uma requisição do tipo HTTP a uma página hospedada em um servidor e este por sua vez devolvia essa página entre outros recursos (html,css, javascript, imagens e documentos) para o cliente que fez a requisição. Esse processo se repetia toda vez que o cliente interagia com a página, ou seja, toda vez que o usuário selecionava uma opção em um combobox, clicava em um link ou ainda uma imagem, o browser fazia uma nova requisição ao servidor. 

Era um processo síncrono, pois a resposta a requisição era dada na mesmo momento em que era feita essa requisição.

Em certo momento da carreira, meu chefe pediu que eu desenvolvesse um formulário aonde havia uma combo de seleção com opções que estavam persistidas em um banco de dados. Ao entregar a encomenda, meu chefe estava incomodado com o fato de toda vez que ele escolhia uma opção, a página que continha o formulário era recarregada.

Ele então me disse: Por que você não utiliza Ajax nessa combo? Eu dei uma risada e falei: Como vou solucionar esse problema com um produto de limpeza, meu líder?

AJAX significa Asynchronous JavaScript and XML, ou JavaScript e XML Assíncronos, em bom português. Ele é um conjunto de técnicas de desenvolvimento voltado para a web que permite que aplicações trabalhem de modo assíncrono, processando qualquer requisição ao servidor em segundo plano.

A partir dali, verifiquei que havia uma forma de se fazer requisição do tipo HTTP sem a necessidade de se carregar a página, ou seja, um jeito de tornar o processo assíncrono.

Com o tempo fui notando que tudo parecia utilizar tecnologia similar AJAX (Gmail, Facebook, Google Maps). As requisições HTTP ficavam todas transparentes, causando ao usuário a experiência semelhante ao uso de aplicações ou sistemas do tipo Desktop. 

Surgia ali o conceito de Single Page Application ou SPA.

Single Page Applications (SPA) são aplicações cuja funcionalidade está concentrada em uma única página. Ao invés de recarregar toda a página ou redirecionar o usuário para uma página nova, apenas o conteúdo principal é atualizado de forma assíncrona, mantendo toda a estrutura da página estática.

Além de otimizar a performance da aplicação, reduzindo o conteúdo a ser carregado, as SPAs têm foco na experiência do usuário, que lida com uma interface mais rápida.

Há atualmente no mercado diversos frameworks/bibliotecas que facilitam a criação de aplicações seguindo esse modelo. Entre os principais estão: Angular, React e Vue.js, frameworks JavaScript que trabalham com o conceito de componentes, mas aí é assunto para um outro post.

Valeu!

Nenhum comentário: