2012-01-28 13 views

Respuesta

18

se puede utilizar el método de $.ajaxSetup() para establecer las propiedades globales de AJAX que se aplicarán para toda la página:

$.ajaxSetup({ 
    beforeSend: function() { 
     // show progress spinner 
    }, 
    complete: function() { 
     // hide progress spinner 
    } 
}); 
+0

que funciona perfectamente. gracias. – LordZardeck

+1

¿Capturará incluso los que no usan jQeury o que no es posible? – rain01

+1

@ rain01, no, esto solo captará las solicitudes jQuery AJAX. –

2

Intente utilizar ajaxStart caso de jQuery

+1

que probablemente usar 'ajaxSend' lugar, ya que se activa para todas las peticiones Ajax (vs sólo el primero uno con' ajaxStart'). ver también http://stackoverflow.com/questions/3735877/whats-the-difference-between-1-ajaxstart-and-ajaxsend-and-2-ajaxstop-and –

+0

Otra nota: @LordZardeck podría querer eliminar la "carga ... "barra de progreso cuando todas las solicitudes ajax terminan con éxito o con errores. Eso es algo que se debe hacer usando '.ajaxError()' y '.ajaxStop()' –

4

Por alguna razón u otra $.ajaxSetup() no estaba trabajando para yo. Después de leer a través de la docs sin embargo, me encontré con lo siguiente:

Nota: Las funciones de devolución de llamada globales deben establecerse de sus respectivos métodos -.ajaxStart globales Ajax de control de eventos(), .ajaxStop(), .ajaxComplete (), .ajaxError(), .ajaxSuccess(), .ajaxSend() - en lugar de dentro del objeto de opciones para $ .ajaxSetup().

Trate $.ajaxStart() y $.ajaxComplete() lugar:

$(document).ajaxStart(function() { 
    console.log('Request Initiated'); 
}); 
$(document).ajaxComplete(function() { 
    console.log('Request Complete'); 
}); 
Cuestiones relacionadas