2007 31/10
Comet? Reverse Ajax? Ajax 2.0? Como assim?
Hoje, um colega aqui do trabalho me indicou um post que fala sobre as otimizações de Javascript do Gmail.
Porém, o que eu achei mais interessante foi seguir alguns dos links e encontrar o nome para uma técnica que eu já conhecia, mas que agora vi documentada e explicada. Trata-se do Comet ou Reverse Ajax.
Um novo nome para o Ajax comum?
O segundo nome, Reverse Ajax, pode facilitar o entendimento da técnica. Primeiro, vamos lembrar resumidamente como funciona um Ajax tradicional.
No Ajax comum, o cliente (o navegador) dispara uma requisição e o servidor responde em seguida, daí o cliente processa essa resposta e exibe da forma adequada ao usuário.
Um exemplo prático: imagine que no seu webmail favorito exista um endereço que retorna quando há mensagens novas na sua caixa de entrada.
Se você fizer essa requisição a cada meio segundo, seu servidor irá receber muitas requisições apenas para dizer: "hey, não tem nada de novo!".
Seria interessante que o servidor pudesse responder a requisição somente quando houvesse alguma mensagem nova. É aí que o Comet (ou Reverse Ajax) entra.
Comet e o poder de resposta do servidor
Tudo bem, muito bacana que o servidor possa responder quando houver algo novo mas... Como fazer implementar isso de verdade?
Este artigo demonstra duas formas de se implementar o Comet com PHP. Como PHP é uma linguagem bem conhecida, fica fácil entender os exemplos. Vou comentar aqui apenas o segundo exemplo, feito usando o objeto tradicional de Ajax: XMLHttpRequest.
Se você analisar o segundo exemplo, verá que a técnica basicamente consiste em manter a conexão ativa até uma resposta ser gerada (ou até um limite máximo de tempo, claro).
Isso pode ser feito, na maioria das linguagens, através de um método sleep ou similar.
Resumindo
Como você pode ver, implementar Comet não é algo novo, mas com certeza é uma técnica bastante interessante e possui aplicações valiosas. Se você já usou em algum lugar, deixe seu comentário com a sua experiência!
- Referências
- Comet ou Reverse Ajax
- Otimizações de Javascript no Gmail
- Gmail
- Implementando Comet com PHP