sexta-feira, 1 de junho de 2007

AJAX - Semana Web 2.0

(Trasgo)
(um artigo um pouco mais técnico hoje, desculpem :P)

Continuando o especial:

1 - Feeds
2 - Podcasts
3 - AJAX
4 - Videos
5 - Social Bookmarks




AJAX (acrônimo de Asynchronous Javascript And XML) é o uso sistemático de tecnologias providas por navegadores, como Javascript e XML, para tornar páginas mais interativas com o usuário. AJAX não é somente um novo modelo, é também uma iniciativa na construção de aplicações web mais dinâmicas e criativas. AJAX não é uma tecnologia, são realmente várias tecnologias trabalhando juntas, cada uma fazendo sua parte, oferecendo novas funcionalidades.

O modelo clássico de aplicação web trabalha assim: A maioria das ações do usuário dispara uma solicitação para o servidor web. O servidor processa algo — recuperando dados, realizando cálculos, conversando com vários sistemas — e então retorna uma página HTML para o cliente. Porém, enquanto o servidor está fazendo seu trabalho, o que o usuário estará fazendo? O que é certo, esperando. E a cada etapa em uma tarefa, o usuário aguarda mais uma vez.

Obviamente, se nós estivéssemos projetando a Web a partir do zero para aplicações, não faríamos com que os usuários esperassem em vão. Uma vez que a interface está carregada, por que a interação do usuário deveria parar a cada vez que a aplicação precisasse de algo do servidor?

A maior vantagem das aplicações AJAX é que elas rodam no próprio navegador web. Então, para estar hábil a executar aplicações AJAX, bastar possuir algum dos navegadores modernos, ou seja, lançados após 2001. São eles: Mozilla Firefox, Internet Explorer 5+, Opera, Konqueror e Safari.


Os quatro princípios de Ajax:


  • O navegador hospeda uma aplicação, e não conteúdo
Em uma aplicação web clássica baseada em páginas, o navegador é efetivamente um terminal burro. Ele não sabe nada sobre o que o usuário está realmente realizando em suas ações conseqüentes. Já em uma aplicação Ajax, parte da lógica da aplicação é movida para o navegador.

  • O servidor fornece dados, e não conteúdo

Em uma aplicação Ajax, o tráfego tem sua maior intensidade no início, com um largo e complexo cliente sendo entregue em uma única explosão, quando o usuário entra. As comunicações subseqüentes com o servidor são muito mais eficientes, de qualquer forma. Para uma aplicação breve, o tráfego cumulativo pode ser menor em uma aplicação de página web convencional. Mas conforme o tamanho médio do tempo de interação aumentar, o custo de largura de banda da aplicação Ajax se torna menor do que sua aplicação clássica equivalente.

  • A interação do usuário com a aplicação pode ser flexível e contínua
Os conceitos mais sofisticados de interface com o usuário, assim como “arrastar e soltar”, se tornam praticáveis, trazendo as experiências dessas interfaces em pé de igualdade com os controles de aplicações desktop. Da perspectiva de usabilidade, esta liberdade não é importante somente porque ela permite exercer nossa imaginação, mas porque ela nos permite combinar a interação do usuário e as solicitações ao servidor de maneira mais completa.

  • Real codificação requer disciplina
Codificar uma aplicação Ajax é algo completamente diferente.  A base de código será tipicamente mais ampla que qualquer código escrito para uma aplicação web clássica. Boas práticas na construção da base de código se tornam muito importante. O código deve tornar-se, de preferência, responsabilidade de uma equipe do que apenas um indivíduo, criando edições de manutenibilidade, separações de interesses, e estilos e padrões de codificação comum. Uma aplicação Ajax, portanto, é uma porção de código funcionalmente complexa que comunica eficientemente com o servidor enquanto o usuário continua com seu trabalho. Ela é claramente uma descendência da aplicação clássica baseada em páginas, mas a similaridade não é mais forte do que entre um cavalinho de madeira e uma moderna bicicleta de passeio.


Exemplos Práticos

Vários sites em AJAX fazem fama na Web. os pioneiros foram:

Exemplo 1 - Google (Gmail, iGoogle, Google Docs) : Com uma interface revolucionária, o Google mostrou ao mundo o seu Gmail e trouxe uma das aplicações pioneiras em AJAx. Hoje, já temos vários outros serviços de email pensando da mesma maneira - Yahoo, Windows Live Mail - mas o gmail foi o líder. Compare o visual e a usabilidade do Gmail com um email antigo, como o do Bol, por exemplo, e você verá que porque programar em AJAX realmente faz a diferença. A home personalizada do Google também aplica conceitos avançados de AJAX, como arrastar e soltar. O Google Docs fornece um editor de texto avançado, um editor de planilha avançado e um editor de apresentações avançados, inteiramente escritos em AJAX, perfeitamente funcionais, capazes de suportar edições simultaneas de vários usuários. Na verdade, praticamente todos os serviços do Google utilizam-se de AJAX.

Exemplo 2 - Meebo: Um messenger multiprotocolo, escrito inteiro em AJAX. Leve, prático e muito bacana.

Fontes:
[1]Wikipedia