Nil (./10) :
on accroche juste le listeneur au body dans une boucle infinie ?
ewwwwww, non, je ferais pas ça. Regarde plutôt du côté de la fonction setInterval (
http://www.xul.fr/ecmascript/settimeout.php) qui lancerait une petite requête AJAX pour récupérer l'avancement.
Sinon, je pense que ce qui prend du temps et de la mémoire est la concaténation elle même (innerHTML+= )
Essaie-donc de voir avec ce qu'ils racontent là bas :
http://jsperf.com/innerhtml-vs-append(je n'ai jamais testé, c'est juste une piste)