Olá a todos. Esse artigo foi muito solicitado após a publicação do artigo anterior (https://imasters.com.br/artigo/9903/ajax/vantagens_e_desvantagens_no_uso_de_ajax/) e oferece uma abordagem mais prática ao tema.
O AJAX é uma das tecnologias atuais mais polêmicas em relação ao seu uso, pois cada desenvolvedor possui sua forma de aplicação, seu framework preferido e forma de desenvolvimento.
Com isso, temos os infinitos itens de vantagens e desvantagens de seu uso prático.
Nesse artigo tentarei explicar alguns desses itens.
Existem inúmeras linguagens de programação distintas e cada uma com sua característica própria que a deixa melhor ou pior que outras linguagens em relação a um requisito de software. Com o AJAX não é diferente, pois o JavaScript, que é a linguagem por trás dela, tem muita coisa que podemos analisar.
Como vantagens práticas do seu uso, temos as seguintes:
Aumento significativo na velocidade do site – Quando estamos buscando apenas dados do servidor e atualizando apenas a uma parte específica do site, estamos economizando significativamente a banda utilizada do servidor, ainda mais quando temos um layout complexo e com muitas imagens.
Melhor experiência do usuário – Um site projetado com os diversos recursos oferecidos pelo AJAX é um site rico, pois o AJAX explora muito bem os recursos que o browser disponibiliza, já que o JavaScript é uma linguagem client-side (lado do cliente).
Flexibilidade para escolha da linguagem server-side (lado do servidor) – Não podemos deixar de citar essa importante característica, pois é uma grande vantagem também. Com o AJAX temos total liberdade de escolha sobre que tecnologia utilizar para a regra de negócios do projeto. Por exemplo podemos usar Java ou PHP, entre outras linguagens, para manipulação do banco de dados e posterior entrega de dados para o JavaScript tratar.
E como principais desvantagens práticas temos:
- Utilização de um framework às vezes impossibilita a utilização de outro – A existência de inúmeros frameworks para desenvolvimento com AJAX é interessante, mas precisamos ter cuidado com incompatibilidades entre dois frameworks distintos. Por exemplo, se estamos usando o JQuery como framework, temos o símbolo cifrão ($) para manipulação do DOM, o que a Prototype também usa. Ou seja, se colocamos os dois na mesma aplicação, ficariam em conflito. É certo que temos maneiras de contornar isso, mas sabemos que seria uma gambiarra para esse problema específico, sendo que o mais certo é um estudo aprofundado sobre os principais frameworks para a escolha de um que satisfaça os requisitos do projeto.
- Botões de “avançar” e “voltar” do navegador – Esse certamente é um grande desafio quanto ao uso. Quando usamos AJAX para o sistema inteiro, estamos criando um aplicativo (diferentemente do modelo de páginas antigo), muito parecido com aplicativos desktop, ou seja, todo o sistema será manipulado pelos eventos dos elementos, como o clique em um link ou o mouseover em uma imagem, mas isso sem o redirecionamento a cada ação, então quando o usuário do site aperta um dos botões de navegação (voltar e avançar), não voltará ao ´conteúdo´ visitado anteriormente, mas sim à página visitada anteriormente.
Para solucionar isso podemos utilizar alguns frameworks como o JQuery que possuem ferramentas úteis para a manipulação de históricos de páginas. Ou seja, a cada evento ocorrido na mudança de conteúdo ele automaticamente adiciona um “momento” no histórico. Logo, quando o usuário aperta os botões de navegação voltará exatamente onde quer. Outra opção é criarmos sistemas com links comuns para sistemas em AJAX, por exemplo um link home e um link empresa, cada um apontando para o respectivo aplicativo AJAX. Isso faz com que alguns históricos sejam pulados mas o usuário se mantém dentro do contexto do sistema. Essa é a abordagem da maioria dos sistemas AJAX, até mesmo aplicações como Gmail, ou Google Docs.
- Não possuir um padrão de codificação – Como disse no início do artigo, cada linguagem possui suas características. Mas sempre é bom compararmos o que há de melhor nas outras linguagens, então, como um comparativo iremos usar o Java. O Java possui uma convenção de nomenclatura, que é usada por toda a comunidade e ajuda na reutilização de código, tanto por terceiros como na própria organização que fez. Isso é uma boa prática a ser seguida, não apenas com o JavaScript do AJAX, mas com muitas outras linguagens, pois facilita muito na manutenção e na distribuição de códigos.
Esses são os principais itens sobre a abordagem prática e já são suficientes para a reflexão e entendimento do uso do AJAX que é uma tecnologia muito profunda, pode ser complexa quando não utilizada corretamente, mas se utilizada com o planejamento devido, rende e muito no desenvolvimento de sistemas.