Interceptar todas as chamadas AJAX

149 views
Skip to first unread message

Pedro Rocha

unread,
Sep 22, 2010, 5:41:39 PM9/22/10
to ar...@googlegroups.com
Caros amigos(ou seria Carta Capital?),

me veio na cabeça a idéia de, de forma genérica, todas as requisições AJAX terem um quadradinho de loading como aviso, como todos esses que vemos pelas webapps da vida. A diferença é que quero fazer isso em 1 lugar só, de forma que não tenha que, em cada função que vá chamar por AJAX, chamar esse quadradinho de loading.

Vi em JQuery sobre o .ajaxSetup, .ajaxStart e .ajaxComplete, mas não vi como lançá-los automaticamente em todas as requisições.

Alguma dica de por onde continuar?

abs,
Pedro Rocha

-------------

Pedro Rocha

unread,
Sep 22, 2010, 5:50:25 PM9/22/10
to ar...@googlegroups.com
Alguns minutos a mais no Google...

caso interesse a alguém.. JQuery

$(document).bind("ajaxStart", function() {
    alert('comecei');
  }).bind("ajaxStop", function() {
    alert('terminei');
  });

abs,
Pedro Rocha

-------------



2010/9/22 Pedro Rocha <pedrogo...@gmail.com>

Renato Elias

unread,
Sep 22, 2010, 6:04:25 PM9/22/10
to ar...@googlegroups.com
vc tmb pode fazer um proxy object sobre o xmlHttpRequest e um interceptador no activexobject

EX: 

window.originalXmlHttpRequest = window.xmlHttpRequest;
window.xmlHttpRequest = function() {
}
window.xmlHttpRequest.prototype = window.originalXmlHttpRequest.prototype;

Claro que precisa de + linhas, mas a idéia é basicamente esta...

E ai nas funções que você deseja "super operar"

window.xmlHttpRequest.prototype.start = function(args) {
  //faco aparecer whatever
   window.originalXmlHttpRequest.prototype.start.apply(this,args);
}

Isto funciona para vários outros comportamentos que vc deseje alterar em qualquer objeto 

--
Ao responder um tópico, reproduza apenas a parte
relevante da mensagem original, apagando demais
partes e assinaturas.
 
Para sair deste grupo: arqhp-un...@googlegroups.com
Outras opções: http://groups.google.com/group/arqhp

Reply all
Reply to author
Forward
0 new messages