Tratamento de requisições XmlHttpRequest

ARTIGO PUBLICADO POR Ajax OnlineORIGINALMENTE EM:
http://ajaxonline.com.br/blog/2007/01/29/tratamento-de-requisicoes-xhr/

Olá novamente, e aê andam estudando o jQuery? hehehe.
Bom, hoje ensinarei a fazer tratamentos com as nossas requisições AJAX.
No jQuery existem estas funções:

$.post(), $.get(), $.ajax(), ajaxComplete(), ajaxError(), ajaxSend(), $.ajaxSetup(), ajaxStart(), ajaxStop(), ajaxSuccess, $.ajaxTimeout(), $.getScript(), $.getIfModified(), $.getJSON().

Veja que você consegue ter um controle todo personalizado das requisições, não entrarei em detalhes de todas estas função agora, e é meio que auto-descritivo né, mas nesta documentação, ou nesta ou até mesmo nesta lançada esta semana e que pode ser baixada, você tem bons detalhes de como elas funcionam, aqui eu deixo um exemplo de alguns snippets que uso aqui.

CSS:
#loading{ background-color:#F00; color:white; padding:1px; width:100px; display:none; }

JavaScript:
(obs: Console.log() é aceito somente no debugger Firebug)

$(”#loading”)
.ajaxSend( function(request, settings){ //requisição vai se iniciar
console.log(”Iniciando Requisicao em”+settings.url);
})
.ajaxStart( function(){ //requisição começou
$(this).fadeIn(”normal”);
})
.ajaxStop( function(){ //requisição parou
$(this).fadeOut(”normal”);
})
.ajaxError( function(){ //requisição falhou
$(this).fadeOut(”normal”);
})
.ajaxSuccess( function(){ //requisição terminou com sucesso
$(this).fadeOut(”normal”);
})
.ajaxComplete( function(){ //requisição terminou
console.log(”Requisicao Completada”);
});

Chega a ser exageiro de tanta possibilidade, é só ser criativo e escolher a que achar mais adequada, pois todas diferem em algum detalhe em seu funcionamento.
E vale a pena dar uma olhada também nas funções: $.getJSON e $.getIfModified, quebram um galhão também.
No próximo post, mostrarei um plugin para jQuery que permite postar um formulário de uma forma mais simples do que normalmente se faz só com essas funções nativas, é a ajaxForm() e a ajaxSubmit(), aguardem então.
E esta semana terei vestibular (para a FIAP) e estarei me mudando para São Paulo, capital, mas não pretendo me atrasar nos posts. =)