Dando feedback

Estou usando o vraptor

Eu tenho um método que demora um monte e simplificado é mais ou menos assim

log("Consultando datas ...");
abreConsulta(...);
log("Atualizando datas ...");
int datasAtualizadas = 0;
while(rs.next()) {
	atualiza(...);
	datasAtualizadas++;
	System.out.print(".");
	if (datasAtualizadas % 10 == 0)
		System.out.print(" ");
	if (datasAtualizadas % 50 == 0) {
		System.out.print(" 50");
		if (datasAtualizadas % 500 == 0)
			System.out.print(" "+datasAtualizadas);
		System.out.println("");
	}
}

Tentei colocar o ‘loading’ usando ajax, mesmo assim o método demora, aí cliente impaciente acha que não funciona clica de volta, etc

Aí coloquei os pontinhos, porém tem como jogar isto no browser para ele mostrar os pontinhos de forma incremental, e assim o cliente ter o feedback e ver que está executando?

Vc quer uma barra de progresso?
http://plugins.jquery.com/project/jQueryProgressBar
Se for isso têm mais no Google, é só jogar “jquery bar progress”.
Abraço!

Ótimo, uma barra de progresso resolve muito bem além de ficar visualmente mais bonito.

E vc sabe como ficaria o controller do vraptor, o que mudaria para eu avisar o progress gradualmente ?

um dos jeitos é fazer assincronamente

o primeiro request só começa o trabalho, e depois via ajax vc fica fazendo polling (perguntando a cada x segundos) pra ver se já terminou… e vc pode retornar a porcentagem de pronto nesse polling e atualizar a barra de progresso