Disculpen, pero si que lo es en parte. Si no usan el bufer no entiendo o se como lo logran, y si lo logran no son datos reales.
La cosa es asi, arriba de todo, en el php, pones:
ob_end_flush();
Luego, cada vez que vas generando algo, lo vas metiendo todo en un div, y a su vez, vas mostrando en otro el progreso.
Para que te des una idea, te hago un ejemplo:
Código PHP:
<?php
ob_end_flush();
?>
<table width="100%"height=10 style="border:1px solid #666666;">
<tr>
<td>
<table width=0% height=10 id="barra">
<tr>
<td bgcolor=0C3285></td>
</tr>
</table>
</td>
</tr>
</table>
<script>obj = document.all.contenido; // Esto es solo para IE</script>
<?php
flush();
$i=0;
while($i<=10000){
print '<script>document.getElementById("barra").style.width="'.($i/100).'%"</script>';
flush();
$i++;
}
exit;
?>
No es simple si no entendes el concepto, asi que copia esto, y examinalo bien.