Was willst Du denn überhaupt erreichen?
Ich will, dass waehrend mein CGI-Script etwas berechnet, der BROWSER Eine Bitte warten Meldung anzeigt und wenn er fertig ist die richtige HTML Seite! Ohne eine zwischen Datei zu erzeugen! Diese Seite soll er dann auch automatisch Drucken! (Was ein anderes Problem ist.
Nicht das Drucken, sondern das automatisch! Ohne ein Fenster anzuzeigen!)
Dein Hauptproblem ist m. E. erst mal der Server-Timeout. Wenn der Dich erwischt, dann war's das mit dem Warten. Ansonsten könntest Du ungefähr das versuchen, was ich mir neulich gebastelt habe.
Das war ein Perl-Skript, welches als Ergebnis seiner Berechnung erst mal eine HTML-Datei generiert, welche ein Frameset ist. Oben ein großer Frame, unten ein kleiner als eine Art Statuszeile (die bei Dir keinen Sinn macht - bei mir schon, ich verwende Dateien, und zwar mit $PID im Namen).
Die Statuszeile enthält ein HTML-Dokument, das selbst wiederum durch ein CGI-Skript ausgegeben wird. Wenn gerade etwas anzuzeigen ist, dann wird es angezeigt - wenn nicht, dann nicht (nahezu leeres HTML-Dokument, nur Hintergrundbild).
Dieses HTML-Dokument ruft sich selbst alle <n> Sekunden (der Wert von <n> hängt davon ab, in welcher Phase meine Berechnung gerade ist) selbst auf - es generiert ja die HTML-Seite, durch die es selbst wieder aufgerufen wird (CGI-Parameter in der URL des META REFRESH-Tags) und weiß, wann es das nächste Mal aktiviert werden will.
Im oberen Frame - das ist der für Dich interessante - läuft nun das CGI-Skript, das so ähnlich wartet wie Deines. Irgendwann ist es fertig und gibt seine Ergebnisse aus.
Problem: Solange es wartet, sieht der Frame leer und häßlich aus. Was tun?
Sehr einfach: Auch dieses Skript ruft sich selbst auf. Aber nur genau einmal!
Die erste "Instanz" gibt die "bitte warten"-Meldung auf - und direkt danach ruft es sich selbst mit *einem* zusätzlichen Parameterwert auf, der dazu führt, daß *nun* tatsächlich etwas berechnet wird!
Das dauert nun so lang, wie es halt dauert ... am Ende habe ich meine Ergebnisse auf dem Bildschirm, und bis dahin habe ich meine "bitte warten"-Meldung im Browser ...