posted 17 years ago
This is an example of what I did in similar case.
The idea is to proccess some amount of rows in once with some small interval, so the page will not be frozen during the long loops. You can add some inteligence to that in order to always start with the rows that currently visible.
In the following code once you call doAction, it will start a loop, proccesing 10 rows at a time with 10 ms interval.