2009-10-02 11 views

risposta

8

Utilizzi jQuery?

Se in modo da poter utilizzare:

ajaxStart & ajaxStop: http://docs.jquery.com/Ajax

Ad esempio:

$(function(){ 

    // hide it first 
    $("#spinner").hide(); 

    // when an ajax request starts, show spinner 
    $.ajaxStart(function(){ 
     $("#spinner").show(); 
    }); 

    // when an ajax request complets, hide spinner  
    $.ajaxStop(function(){ 
     $("#spinner").hide(); 
    }); 
}); 

È possibile ottimizzare un po 'con un contatore richiesta di incrementi e decrementi nel caso in cui hanno un sacco di richieste simultanee.

Se non si utilizza jQuery, controllare il codice sorgente jQuery per cui eventi ajaxStart si registrano effettivamente in plain javascript.

HTH Alex

+0

Sto usando il prototipo. – brainfck

+0

Ok, non è così facile, ma controlla questa pagina http://www.prototypejs.org/api/ajax/request e gli eventi: - onCreate - onComplete –

+2

Grazie, ho cambiato in jQuery. Prototipo fa schifo :) – brainfck

1
$().ajaxSend(function(r, s) { 
    $("#spinner").show(); 
}); 

$().ajaxStop(function(r, s) { 
    $("#spinner").fadeOut("fast"); 
}); 
2

ho usato questo nella mia applicazione Rails. Questo ha funzionato per me:

$(document).ajaxSend(function(r, s) { 
$("#spinner").show();}); 


$(document).ajaxStop(function(r, s) { 
$("#spinner").fadeOut("fast");}); 
+0

Ho dovuto usare anche $ (documento), il vuoto $() o solo $ senza parentesi non funzionava. – Blizwire

Problemi correlati