Tom: Zustandsprüfung

Beitrag lesen

Hello,

Der Nutzen der Geschichte sollte sein, dass der User sofort als offline angezeigt wird. Ansonsten würde dies nur nach 20 Minuten passieren, nachdem die Session abgelaufen ist, ein anderer User ein Klick macht würde der User erst offline gezeigt, weil die Session in der DB erst dann auch gelöscht wird.

Das Logout beim Schließen sollte dies beschleunigen, damit die User sich nicht wundern, wieso die User noch eingeloggt erscheinen obwohl sie nicht antworten/nicht mehr online sind.

Wenn Du nur wissen willst, ob der User ein bestimmtes Fenster geöffnet hält, dann geht das ggf. naoch anders.

In einem Frameset ein Nutzframe für die anzuzeigende Seite und ein Blindframe für einen AJAX-Request.
Dieser AJAX-Request erhält vom Server "tröpfchenweise" Antworten. Die sind ihm eigentlich auch egal, darum schmeißt er sie auch gleich in den Mülleimer.

Das Script auf dem Server (PHP) prüft aber nun auf user_abort(). Das ist nun abweichend vom Konzept der Verbindungslosigkeit ein Durchgriff auf tiefere Schichten. Wenn der User das Gesamtfenster schließt und damit auch das Blindframe, dann ist die Verbindung abgebrochen. Der Server merkt das ziemlich gleich beim nächsten Schleifendurchlauf und Prüfung auf connection_status.

http://de3.php.net/manual/en/function.connection-status.php

Ob das auch mit anderen Scriptsprachen geht, weiß ich nicht. Mit PHP habe ich es schon ausprobiert, allerdings nur mit einfachem blinden Frame, dass dann eben vollgemüllt wurde von den "Tröpfchen".

Wenn das Script einen Abort feststellt (dazu muss es selber weiterlaufen!) kann es seinerseits die erforderlichen Maßnahmen ergreifen.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de