Personalmente lo he hecho sin usar la "tecnología ajax". Lo que hice es trabajar con el buffer del lado del servidor, he ir mostrando con js (no en background, por eso digo que no use la lógica de ajax) un preload.
Para mas info sobre las funciones de php:
http://ar2.php.net/manual/es/function.flush.php
Si queres un ejemplo de esto, podes verlo en
http://www.estudiowas.com.ar/extranet.php y mirar su código fuente.
Espero que te sea útil.