Desmistificando o AJAX – Parte VI
Raphael Paiva
Conclusão
No nosso caso, demonstramos um exemplo bem simples, porém capaz de apresentar a ‘ponta do iceberg‘ do desenvolvimento Web com AJAX.
A popularização do AJAX ajudou e muito no nascimento de novos termos, como a Web 2.0 [ra funcionalidade p[ontes estç(http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html), uma quase renascença da Internet, desta vez, liderada pelo Google; e foi justamente o Google onde tivemos a primeira aplicação com alta popularidade que utilizou o AJAX, o GMail.
O mais interessante é que AJAX não é novo! Já era utilizado por inúmeros desenvolvedores mundo afora, porém, com a criação do acrônimo para referenciá-lo a Javascript, XML e chamadas assíncronas, popularizou-se em poucas semanas; o artigo que “batizou” a “velha” tecnologia não muito difundida foi escrito por Jesse James Garret no site da Adaptive Path (http://www.adaptivepath.com/publications/essays/archives/000385.php), onde me serviu de primeira base de estudos (e onde “colei” as duas figuras sobre o modelo assíncrono e a arquitetura do AJAX).
Após a leitura do artigo, me interessei e fui atrás de novas fontes, principalmente com exemplos, e onde eu fiz meu primeiro test-drive foi no catálogo de BluePrints do Java.net (https://bpcatalog.dev.java.net/nonav/ajax/). A partir daí, e até hoje, estou pesquisando mais sobre o assunto aos poucos. A maior e melhor fonte que posso indicar é a wikipedia (http://en.wikipedia.org/wiki/AJAX) com inúmeros artigos, frameworks, exemplos, scripts e histórico sobre o tema.
Pessoalmente ainda não utilizo nenhum framework que implemente AJAX, pois normalmente estes são voltados para a camada visual da aplicação, e ainda não tive oportunidade (ou necessidade) de utilizar algo semelhante, porém, acho que um dia eu chegue a utilizar algum; caso se interesse por algum framework, listei alguns que li no início do capítulo 6, vale a pena escolher algum para estudar e usar. Pretendo que meu próximo artigo/tutorial sobre AJAX seja um comparativo entre estes frameworks ou algo semelhante a isto (qualquer idéia, pode entrar em contato comigo J).
Durante o tutorial não cheguei a comentar em detalhes os métodos do objeto XMLHttpRequest para que ficasse algo mais direto à prática, já que falei razoavelmente sobre a teoria por detrás; assim, no apêndice a seguir, organizei os principais métodos e suas funções.
CRIANDO UM OBJETO |
||
FORMA |
BROWSER |
|
var req = new XMLHttpRequest(); |
Mozilla e outros |
|
var req = new ActiveXObject("Microsoft.XMLHTTP"); |
Internet Explorer |
|
var req = new ActiveXObject("Msxml2.XMLHTTP"); |
Internet Explorer |
|
MÉTODOS DO OBJETO |
||
MÉTODO |
FUNÇÃO |
|
abort() |
Cancela a atual requisição |
|
getAllResponseHeaders() |
Retorna a coleção de cabeçalhos do http como uma String |
|
getResponseHeader("campoCabecalho") |
Retorna o valor do campo do cabeçalho |
|
open("metodo","URL",assincrono) |
Especifica o método, a URL e outros atributos opcionais de uma requisição. O parâmetro “método” pode ser GET, POST ou PUT. O parâmetro URL pode ser uma url relativa ou completa. O parâmetro assíncrono informa se a requisição será assíncrona ou síncrona: true significa que o script continuará após a execução do método send; false significa que o script ficará esperando a resposta do servidor no método send. |
|
send(conteudo) |
Envia a requisição |
|
setRequestHeader("campo","valor") |
Adiciona um par (campo/valor) ao cabeçalho http a ser enviado |
|
PROPRIEDADES DO OBJETO |
||
PROPRIEDADE |
DESCRIÇÃO |
|
onreadystatechange |
Indica o evento a ser chamado cada vez que o estado do objeto muda. |
|
readyState |
Informa o estado do objeto da requisição: 0
= objeto não inicializado |
|
responseText |
Retorna a resposta como uma string |
|
responseXML |
Retorna a resposta como um XML (que pode ser tratada como um W3C DOM) |
|
status |
Retorna o estado da requisição como um número (ex: 404 para “não encontrado” e 200 para “OK”) |
|
statusText |
Retorna o estado da requisição como uma string (ex: “Não encontrado” ou “OK”) |
|