terça-feira, 19 de fevereiro de 2008

AJAX for dummies reloaded

Para os que AINDA não sabem o que é o tal do AJAX, escrevi algo que conta sua história.

Há algum tempo sendo tema de palestras e dabates, Ajax vem como um alívio aos desenvolvedores web, que sentem cada vez mais encurralados a adicionar interatividade em suas aplicações.

A história começa quando no ínício do ano 1999 a Microsoft lança a versão 5 de seu navegador, incluindo uma nova funcionalidade ao seu controlador ActiveX. Trata-se da possibilidade de criar um objeto do tipo XMLHTTP, que, de acordo com documentação da Microsoft, permite que seja postada uma árvore xml para um servidor web de preferência, e obtida a resposta enviada pelo servidor para que processamentos client-side pudessem ser feitos.

A alternativa até então usada para conseguir um resultado semelhante consistia no uso de IFRAMEs (frames html que, via css, podem ser tornados invisíveis): formulários eram postados para os IFRAMEs, processados, e o resultado era, na maioria das vezes, um xml (para ser processado novamente em client-side), ou um Javascript contendo o código a ser executado pelo navegador.

O cenário hoje se assemelha muito com o anterior. Até o lançamento do Internet Explorer 7, controles ActiveX eram usados para a criação dos objetos XMLHTTP, já na nova versão, a Microsoft, permite que a requisição seja feita sem o uso de controles ActiveX, e sim através do Objeto XMLHttpRequest, cujo draft já está presente no W3C.

A respeito do navergador Mozilla, consta que desde sua versão 1.0 a funcionalidade está presente e claramente definida como uma cópia daquela presente no IE. A diferença mais visível entre as duas implementações foi, até o lançamento do IE 7, o uso de um Objeto Javascript no lugar de um controle ActiveX, objeto esse que tem o nome de XMLHttpRequest, o mesmo proposto pelo W3C, fato que não é uma coincidência.

Com a exposição em forma de Objeto Javascript pelo IE 7 e grandes esforços por parte do W3C, bem como de outros desenvolvedores de navegadores (Opera, Safari, Mozilla, e etc.), estamos muito próximos de uma solução 100% compatível com os vários clientes web.

Quando se pergunta às pessoas o que é o Ajax, as respostas sempre variam: alguns dizem que é um tecnologia, outras um paradigma, outras uma técnica, e a lista se extende. Prefiro porém acreditar (e concordar com a definição contida no Wikipedia para o termo) que trata-se de uma técnica que se utiliza de várias tecnologias. AJAX, sigla de Asynchronous Javascript And XML, consiste em fazer uso de requisições utilizando o objeto Javascript XMLHttpRequest de maneira assíncrona. Por “assíncrona”, temos que o número de requisições feitas pelo browser não corresponde necessariamente ao o número de solicitações que um usuário tem conhecimento que faz a um servidor. Cito o exemplo das famosas caixa de seleção de estado e cidade: ao selecionar um estado, o browser faz uma solicitação ao servidor informando o estado, que retorna as cidades referentes àquele estado, para então, com base na resposta presente no objeto XMLHttpRequest, popular a caixa de seleção com a nova lista.

Como um dos components da Web 2.0, AJAX tem nos feito acreditar que o mundo de Rich Web Applications é realmente possível e que estamos cada vez mais dentro dele.

Diógenes Guedes Rettori.

Referências:

http://support.microsoft.com/kb/217145/en-us

http://blogs.msdn.com/ie/archive/2006/01/23/516393.aspx

http://msdn2.microsoft.com/en-us/library/ms950766.aspx

http://adaptivepath.com/publications/essays/archives/000385.php

http://www.w3.org/TR/XMLHttpRequest/

http://www.webreference.com/xml/column58/2.html

http://en.wikipedia.org/wiki/Ajax_%28programming%29

3 comentários:

Luis disse...

Simples e objetivo!
Incrível como a evolução dos browsers misturado com o velho e bom HTTP e o HTML de cada dia, consegue fazer a WEB ganhar uma nova versão sem mudar absolutamente NADA.
E antigamente quem fazia a Web 2.0 de hoje era bem menosprezado...

Questão de TTM (Time to market) :-)

Anônimo disse...

Gostei do blog véi!!! Mas c sabia que o Ajax foi inventado porque os desenvolvedores do MS Exchange baseado em http precisavam desenvolver algo que fosse mais rápido do que um postback completo?! Us minêro também são cultura uai!

Diógenes G. Rettori disse...

Ótima participação do anônimo. Tinha-se a breve explicação da solução, porém faltava um MOTIVO. Obrigado!