An alternative is to use multi-part http. there's enough info on this in the CGI module to get you to the finish line. Basically, the form's submit button runs the one script which spits out multi-part html periodically, until the last one, which is the actual results. No reload etc is used, as this is server push. Most browsers support it by now.