2009-11-12 11 views
5

Ich überprüfe den Benutzerstatus - ob er aktiv oder inaktiv ist - auf einer Webseite (in einem Popup-Fenster). Falls er länger als 30 Minuten inaktiv ist, wird das Fenster automatisch schließen und einige Flags in der Datenbank zurücksetzen.Überprüfen des Benutzerstatus (aktiv, im Leerlauf) auf einer Webseite

Ich setze Cookies, die das Time-In enthalten (die Zeit, in der er das Popup-Fenster öffnet) und überprüfe die aktuelle Uhrzeit jedes Mal, wenn die Seite aktualisiert wird oder er navigiert zu einer anderen Seite (immer noch im Popup-Fenster) . Abgesehen von den Cookies, setze ich auch die Zeit in der Datenbank (für den Fall, dass das Popup-Fenster nicht geöffnet ist, wird ein Cron-Job für das Zurücksetzen von Flags sorgen, indem er die Zeit in der Datenbank überprüft).

Es könnte sein, dass er etwas in das Fenster schreibt und innerhalb von 30 Minuten keine Seite geladen wird. Das Fenster wird automatisch geschlossen und er verliert seine Arbeit. Also habe ich eine Funktion hinzugefügt, so dass jeder time-in-Wert sowohl im Cookie als auch in der Datenbank aktualisiert wird.

auch, es kann mehr als eine Person geben, die das System verwendet.

Wird dies zu viele Ressourcen verbrauchen? Ich bin nicht vertraut mit Sachen zu diesem Thema. oder gibt es einen besseren Weg, dies zu tun?

danke!

Antwort

1

Wenn Sie jemals onkeypress und jedes onclick-Ereignis an den Server/die Datenbank senden, wird dies Ihren Server durchdringen! Für diese zwei Dinge würde ich eine weitere JavaScript-Funktion hinzufügen, die Informationen sendet, wenn der Benutzer in einem Intervall von - zum Beispiel - 2 oder 5 Minuten aktiv ist. Sie können dies durch setInterval oder setTimeout Funktionen tun und verfolgen, wenn der Benutzer in der letzten Periode aktiv war. Wenn er war, senden Sie die Anfrage, wenn nicht, nicht senden.

Verwandte Themen