Struppi: wie erkennen, wenn Browserfenster geschlossen wird?

Beitrag lesen

Also: ich würd tippen, es klappt nicht.

Und es klappt doch ... bin gerade selbst drauf gekommen. Folgende Anweisung löst das Problem:

syswrite(STDOUT," ") || &meinesub();

Mit dem Befehl syswrite schicke ich ein Leerzeichen an den aufrufenden Browser (Standard-Ausgabe). Syswrite gibt tatsächlich einen Fehler zurück, falls der Browser die Seite nicht mehr offen hat oder selbst nicht mehr offen ist. Diesen Fehler fange ich dann ab und verzweige in meinem Script entsprechend.

Das ist völliger Quatsch.
Perl schreibt ein Leerzeichen an STDOUT, das kann die Konsole sein (DOS Box unter Windows) oder bei einer CGI Anwendung ist es der Server der das Leerzeichen entgegen nimmt und dan den Empfänger weiterleitet. Wenn der Empfänger nicht mehr existiert (der Empfänger ist aber nicht der Browser, sondern die IP Nummer, die die Anfrage ausgelöst hat) bekommst du nie eine Rückmeldung und Perl schon gar nicht, da das Programm i.d.R. schon lange beendet ist.

Falls in dem obigen Falle wirklich ein Fehler auftritt, dann ist irgendwas anderes bei dir kaputt.

Struppi.