obiwan1973: Mit JS prüfen: Existiert PHP-Session / Ist Webserver erreichbar?

Beitrag lesen

Hallo zusammen,

wie frage ich am besten per JavaScript ab, ob die HTTP- bzw. PHP-Session noch existiert bzw. ob der Webserver oder eine bestimmte PHP-Seite erreichbar ist?

Ich möchte Euch auch den Kontext erklären:
Es geht um eine browserbasierte Intranet-Anwendung, die in einem WLAN läuft.
Die Clients sind normale Android Smart Phones, als Browser benutzen wir Firefox Mobile bzw. Opera Classic.

In diesem WLAN kommt es häufig zu Netzverbindungsabbrüchen.
Daran kann ich leider nichts ändern, ist nicht mein Zuständigkeitsgebiet, also bitte, bitte nicht rumschimpfen, bringt keinem was ...

Ich möchte in meiner Anwendung per JS kontrollieren, ob die Sitzung noch existiert und wenn NICHT, die komplette Anwendung re-starten.

Das Re-Starten ist übrigens technisch kein Problem.
1a programmiert, funktioniert fehlerfrei und ist tausendfach bewährt.

Auch Datenverlust habe ich bei meiner Anwendung ausgeschlossen - alle Änderungen in der GUI durch den User werden in einem stationären Cookie gespeichert - und zwar nach jedem Klick.

So, jetzt kommt's:
Ich habe auch bereits so etwas wie einen "Heartbeat" in JS programmiert.
Naja, ist eigentlich mehr als nur JS: JS, PHP, SQL.

Ich habe in meiner Anwendung einen unsichbaren Iframe (nennen wir ihn Iframe1).
Der wiederum enthält einen zweiten Iframe (Iframe2).

Nun arbeitet in Iframe1 ein JS-Script.
Mit window.setTimeout bzw. window.setInterval lasse ich in einem festen Intervall in Iframe2 eine PHP-Seite - nennen wir sie test.php - ständig neu laden.

So sorge ich dafür, dass die Verbindung zwischen Client und Server nicht einschläft.

Außerdem tut die aufgerufene PHP-Seite test.php in Iframe2 noch etwas ganz anderes:
Sie schreibt bei jedem Aufruf mit SQL einen Timestamp in meine Log-Tabelle.
So weiß ich ganz nebenbei (in ungefähr), wie lange der User online war (für den Fall, dass er sich nicht ordnungsgemäß ausgeloggt hat).

Nun möchte ich diesen "Heartbeat" aufbohren:
Wenn die test.php nicht - oder nicht ordnungsgemäß - geladen werden kann, möchte ich meine komplette Anwendung re-starten.
So will es der Boss haben.

Okay, wie mache ich das am geschicktesten?

Ich könnte in die ständig neu geladene Unterseite test.php einfach ein HTML-Textfeld mit einem von PHP erzeugten Timestamp einbauen.

In Iframe1 könnte ich mit JS abfragen, ob das Textfeld in Iframe2 existiert und wenn ja, ob der Timestamp im Feld halbwegs aktuell ist.

Hat jemand bessere Ideen?

Ich finde, so müsste ich nicht etwas ganz neues programmieren, mit viel Aufwand etc.

Es sei denn, es gibt was viel besseres, was mit überschaubarem Aufwand machbar ist?

Und nochmal: Am WLAN kann ich nichts ändern. Sorry, da hilft kein Heulen und kein Fluchen.

Freue mich auf Input!

Gruß

Thomas