http://qs321.pair.com?node_id=151740


in reply to Re: Re: Gez
in thread Have CGI call script, display status in browser

which in this case needs to be an HTML form so that I know the status of the perl script

First, output 512 bytes to make browsers render. Some browsers will never render until the page is loaded completely (like Konqueror), but this works with at least Mozilla and MSIE.
Then, start outputting.

It's a very good idea to set $| to 1, to avoid all buffering. You could use javascript to make it look good.

#!/usr/bin/perl -w use strict; $|++; sub set_status { my ($status) = @_; print '<script> document.getElementById("status").innerHTML = "' . $status . '"; </script>"'; } print qq{Content-Type: text/html\n <html><body><div style="font-size:288pt;"> Current status: <div id=status>Initialising</div> <!-- }, "Z" x 512, q{ --> </div></body></html> }; sleep 2; set_status 'RUNNING'; sleep 5; set_status 'COMPLETE';

U28geW91IGNhbiBhbGwgcm90MTMgY
W5kIHBhY2soKS4gQnV0IGRvIHlvdS
ByZWNvZ25pc2UgQmFzZTY0IHdoZW4
geW91IHNlZSBpdD8gIC0tIEp1ZXJk