quinta-feira, novembro 09, 2006

Ajax - Visão Geral

Olá a todos! Vamos abordar, a partir desta matéria, um assunto muito abrangente e que tem ganhado certo destaque atualmente. Trata-se da metodologia de programação Ajax.

Já não é de hoje que utilizamos em nossas aplicações/páginas recursos para deixar a interação com o usuário, cada vez mais atraente. Usamos para tal recursos de linguagens client-side, como o JavaScript. Com a adoção destas linguagens, podemos fazer validação de formulários, manipulação de DIVs, habilitar/desabilitar campos, alterar textos existentes, entre outros, sem que haja a necessidade de submeter a página ao servidor.

E o que fazer quando precisamos submeter a página para executar determinada ação? Simples: o servidor web irá processar as informações desejadas e retornará uma página HTML com os dados necessários. Para tanto, levará certo tempo até que cheguem as informações desejadas ao usuário final, pois será necessária uma nova renderização (carregar novamente o conteúdo) do browser, mostrando provavelmente, neste intervalo uma tela branca.

Podemos utilizar artimanhas para contornar o problema acima, tal como a utilização de um iframe oculto. Exemplo:
Neste exemplo, o formulário será submetido para uma página qualquer e seu destino será nosso iframe oculto.

Assim, não teremos o problema do novo carregamento da página. Após o processamento, podemos utilizar comandos JavaScript para o preenchimento do formulário:Com isso, aparentemente contornamos nosso problema, que era pesquisar o código digitado e retornar o nome sem que a página fosse carregada novamente. Porém, a manutenção deste tipo de situação é uma tarefa árdua, já que teríamos em todas as páginas iframes ocultos, o que poderia deixar a aplicação mais complexa inutilmente.

Bom, após termos em mente um dos problemas que enfrentamos atualmente, vem a alternativa, que é a utilização de um “canal separado” para fazer essa manipulação.

AJAX, cujo significado é Asynchronous JavaScript+CSS+DOM+XMLHttpRequest, ou simplesmente Asynchronous JavaScript and XML, é a técnica que nos permite solucionar o problema em questão sem ‘gambiarras’. Para isso, utilizamos a classe XMLHttpRequest (estudaremos detalhadamente na próxima matéria), implementada no navegador Internet Explorer a partir da versão 5. Essa classe tem a funcionalidade de fazer o canal entre o cliente e o servidor, permitindo assim que invoquemos os métodos remotamente sem a necessidade de processar novamente a página.

Mas e os outros navegadores? Classes equivalentes foram implementadas, permitindo assim que sua aplicação rode em diversos navegadores sem problemas.

Como observou anteriormente, você precisará dominar alguma linguagem que faz o processamento no servidor, como ASP, PHP, Java etc. O foco não será o estudo dessas linguagens e sim a técnica de manipulação dos dados entre o cliente e o servidor.

Referência: Imasters