Olá a todos. Esse artigo foi muito solicitado após a publicação do artigo anterior (http://imasters.uol.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:
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.
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.
O seu post está bem legal, parabéns!
Sobre utilização de vários plugins, concordo que devemos tomar cuidado, vários frameworks utilizam o "$" como chamada. Expecificamente o seu exemplo existe uma saida bem simples. A utilização do "$" é incondicional para o PrototypeJS, mas para o jQuery não (se a variavel "$" já estiver sendo utilizada ele não a substitui). Nesse caso, você pode incluir primeiro o PrototypeJS depois o jQuery. (nesse caso o jQuery seria chapado apenas jQuery(...))
[]'s
Luiz Paulo
Que bom que gostou.
Boa observação em relação ao $, por isso mesmo que precisamos entender bem o framework que iremos usar, para não termos supresas desagradáveis depois...
[]s
Alantiel Freire Marins
Gostei, muito bom...
Eu, particularmente, utilizo ajax no braço mesmo, evito o uso de frameworks, acho q muito gente torce o nariz pra esse detalhe.
Com relação aos botões de avançar e voltar do browser tb concordo, pois o usuario comum ja ta com esse costume q adquiriu antes da WEB 2.0, no caso de um sistema o ideal seria uma breve e suscinta explanação a respeito do uso do sistema, mesmo assim ainda teremos problemas...
Uma questão interessante é: usar ou não frameworks... para isso não há regras, depende do tamanho do projeto, de tempo utilizado no desenvolvimento e, é claro, de gosto.
[]s
Alantiel Freire Marins
Só para constar, AJAX é uma técnica, e não uma técnologia.
coriijindo a mensagem anterior...
no artigo anterior expliquei isso melhor..
Você cita:
"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."
Onde posso achar tutoriais sobre esta manipulação de histórico? alguma sugestão?
Com a biblioteca de interface do Yahoo! é possível trabalhar com ajax e flash e poder "avançar" e "voltar" no navegador, salvar nos favoritos, etc.
[]s
Estou fazendo exatamente esse artigo, até a semana que vem (espero) postarei aqui no iMasters...
Existem algumas bibliotecas como a citada pelo Danilo (do Yahoo!) que auxiliam, irei mostrar a do JQuery, que acho mais simples...
Aguardem...
Otimo saber, eu ia perguntar exatamente se tinha como fazer com jquery, que acho bem mais prático.
Ficarei no aguardo Alantiel :D
Olá Raphel,
O artigo já foi enviado, nessa semana será publicado...
Existe outras desvantagens do uso do Ajax:
1.) Para o programador: A lógica do desenvolvimento fica um pouco mais complexa.
2.) Para o usuário: O link não necessariamente corresponde ao estado atual da página. Se o cara quiser fazer um bookmark ou enviar algo que achou interessante para um amigo pode haver problemas pois o link aponta para o último redirecionamento feito.
Olá Daniel,
Creio que para o primeiro item citado, o uso de frameworks facilitam bastante, claro que hoje em dia as aplicaçõe estão ficando cada vez mais robustas, e isso também do lado do servidor, então de qualquer forma tende a ser mais complexa.
Para resolver o segundo item, existem formas de fazer a leitura de querystring com o javascript, a partir daí podemos criar uma lógica para direcionar o usuário apartir da url acessada, é bem mais custoso, mas as vezes é necessário.
Obrigado pelo comentário.
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.