Вы используете jQuery?
Если это так, вы можете использовать:
ajaxStart & ajaxStop: http://docs.jquery.com/Ajax
Например:
$(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();
});
});
Вы можете немного настроить счетчик запросов, который увеличивается или уменьшается в случае, если у вас много одновременных запросов.
Если вы не используете jQuery, проверьте исходный код jQuery, для которого события ajaxStart фактически регистрируются в простом старом JavaScript.
НТН
Alex