AJAX não é uma linguagem nova, nem uma plataforma de programação diferente, é apenas um conjunto de tecnologias já existentes no mercado, mas com uma visão diferente. Essa sigla significa: Asynchronous Javascript and Xml. Portanto, podemos notar que temos duas tecnologias – javascript e xml – que já existiam antes, mas que trabalham assincronamente, ou seja, trabalham de forma paralela à página que estiver sendo visualizada e essa é a grande idéia por trás disso, nada mais.
Agora que temos em mente o objetivo principal do AJAX, podemos estudá-lo melhor. O que dissemos anteriormente diz respeito a tecnologias utilizadas pelo AJAX, ou seja, não precisamos, como na maioria dos métodos e formas de trabalhos atuais, aprender uma nova linguagem ou ferramenta, pois elas já existem. Muitos podem estar se perguntando “então por que o AJAX é tão falado, se não precisamos aprender nada a mais do que já existe?”. A resposta é simples: não precisamos aprender, precisamos desaprender!
Isso mesmo, desaprender! Mas desaprender conceitos. Isso é diferente de desaprender linguagens e técnicas. Pois, com todos esses anos de internet, nos acostumamos a criar páginas de internet – antes estáticas hoje em dia dinâmicas – mas esse novo conceito não cria páginas, cria aplicativos on line, e se isso estiver confuso, é exatamente porque é mais difícil desaprender do que necessariamente aprender. Para se trabalhar com AJAX precisamos ter disciplina e bom senso, senão estaremos criando mais problemas ao invés de melhorá-los. Muitas coisas que podemos fazer com AJAX são possíveis de se fazer sem ele, utilizando outras tecnologias ou mesmo algumas das tecnologias embutidas nele como, por exemplo, o javascript, ou mesmo um simples (x)html.
Com o AJAX veio o novo termo muito utilizado e pouco compreendido hoje em dia: WEB 2.0. Esse termo dá a idéia de avanço, complemento, ou seja, a WEB turbinada. Muitos “programadores” web de hoje em dia pensam que aplicar AJAX em seu site irá deixá-lo um site no padrão 2.0, mas pensar isso é erro, pois o conceito de WEB 2.0 está ligado a muitas outras coisas como acessibilidade e portabilidade do site. Desenvolver um site com AJAX pode ter muitas vantagens, mas também desvantagens, vamos manter o foco nas principais.
Um site bem estruturado em AJAX pode proporcionar uma ótima “experiência” ao usuário, visto que o site inteiro já foi carregado na primeira vez. Por outro lado, se o programador implementar o AJAX de forma incorreta ou mesmo para funcionalidades que não precisariam de AJAX para serem implantadas, esse site terá sérios problemas, seja com múltiplos navegadores, seja com ações do usuário.
Esses efeitos estão exclusivamente ligados à disciplina do programador e são facilmente corrigíveis com um pouco de bom senso. Mas existem outros pontos.
Uma ótima característica do AJAX são suas largas bibliotecas de efeitos gráficos que podemos implementar rapidamente. Elas vão desde efeitos de aplicação chamados de alpha, que são efeitos de transparência em qualquer objeto da página, até simuladores de aplicações desktop para a internet, como gerenciadores de e-mail, ou editores de texto. Existem serviços na internet que fazem praticamente todas as tarefas comuns dos computadores, pela internet. O Google é um bom exemplo. Existem muitos serviços do Google que são muito utilizados hoje em dia, e todos eles com uso de AJAX, por exemplo: YouTube, Orkut, Gmail, Google Earth, Google language tools, Google.com, Google Map, Page Creator, etc…
Na teoria, esse lado das vantagens não teria desvantagens, mas na prática as coisas mudam, pois esses recursos não devem ser utilizados à toa ou sem um contexto correto. De outra forma a aplicação ficaria com mais códigos, e por sua vez mais pesados sem necessidade.
Portanto, essa parte da disciplina fica bem clara. Utilizar AJAX com bom senso, do contrário, teremos problema. A parte mais simples – quem diria – é com relação à codificação, mas mesmo assim temos que ter cautela, pois temos que seguir alguns conceitos importantes também. O AJAX segue 4 princípios básicos:
- O navegador hospeda uma aplicação, e não conteúdo;
- O servidor fornece dados, e não conteúdo;
- A interação do usuário com a aplicação pode ser flexível e contínua;
- Real codificação requer disciplina;
De alguma forma, já expliquei esses quatro princípios, mas para deixar bem claro, vou explicar um pouco melhor…
O conceito de aplicação se dá pelo fato de um aplicativo AJAX simular uma aplicação desktop, ou seja, um software “não-web”.
Fornecer dados é diferente de fornecer conteúdo, pois uma aplicação não feita com AJAX faz requisições ao servidor, que por sua vez retornam todo o conteúdo para o navegador exibi-los na tela. Com o conceito AJAX fazemos requisições apenas de dados separados, e transformamos em informações no cliente, ou seja, no navegador.
Sobre a interação do usuário, podemos fazer uma analogia como a seguir: no conceito antigo temos uma pessoa que atende o celular parada e quando termina a ligação essa pessoa atravessa a rua. No novo conceito temos uma pessoa que atravessa uma rua ao mesmo tempo em que fala ao celular. Isso é o mesmo na internet, pois o usuário não é interrompido no uso do restante do site enquanto o servidor está retornando dados.
Sobre a codificação, podemos repetir a afirmativa: é mais difícil desaprender do que necessariamente aprender.