A meta refresh will be difficult to do because the connection isn't
persistent. A meta refresh will only restart the script every time it
requests the script again. The only way that I can see this working is to
use what is known as "server-push". This is done using the Content-type:
multipart/x-mixed-replace directive. Here's an example (it's been awhile, so
you may want to double-check using google):

#!/usr/bin/perl
$|=1;
$count=10;
print qq{Content-type: multipart/x-mixed-replace;boundary=bound\n\n};
print "--bound\n";
print "Content-type: text/html\n\n\n";
print "<HTML><HEAD><TITLE>Please Wait...</TITLE></HEAD><BODY>";
print "<H1>PROCESSING...</H1></BODY></HTML>\n\n";
while( $count ) {
    # do_something
}
print "--bound\n";
print "Content-type: text/html\n\n\n";
print "<HTML><HEAD><TITLE>Done!</TITLE></HEAD><BODY>";
print "<H1>Your application is DONE!</H1></BODY></HTML>\n\n";
__END__

I think that's right. Like I said it's been awhile, so you probably want to
double-check my code (was it was 2 dashes or 3?).

The only other option that I know of would be to create a static file
containing a meta-self-refresh with a visitor-unique filename, and redirect
them to that while the process completes. That would be rewritten
[atomically?] when the process was complete to redirect to the final results
page [which would also need to be a statically written, uniquely-named
file]. This would require some sort of file cleanup when it was all done, so
I think this way would be less desirable.

Good Luck,
Grant M.


_______________________________________________
Boston-pm mailing list
[EMAIL PROTECTED]
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to