2010-11-20 15 views
1

Ich berechne, wie viele Benutzer online, aber wenn eine Person ein Fenster schließen, ohne sich abzumelden, er ist nicht online, muss ich diesen Benutzer logout dynamisch über Javascript oder jquery machen. Wenn ich Körper onunload Ereignis verwende, um dieses zu überprüfen, funktioniert es, aber wenn ich die Seite aktualisiere, ruft es auch das Körperentlastungsereignis auf.Javascript Fenster entladen Ereignis

Hier ist mein Code

<script> 
function LogmeOut() 
{ 
    window.location='logout.php'; 
} 
</script 
<body onUnload="LogmeOut();"> 
    ..... 
    ..... 
</body> 

Die Logout PHP wird den aktuellen Benutzer SignOut vor dem Schließen des Fensters. Irgendwelche Vorschläge?

+0

Sie nicht diese komplett mit UI oder jquery tun können, müssen Sie Back-End-Unterstützung wie Session-Management . – kobe

Antwort

5

Ich glaube nicht, dass es eine zuverlässige Art zu erzählen gibt.

Am besten ist, wenn der Benutzer auf eine Seite zugreift, aktualisieren Sie ihre Aktivität in der Datenbank und legen Sie einen neuen Ablauf (z. B. 15 Minuten).

Wenn der Benutzer bei der Abfrage keine Aktivität ausgeführt hat, könnten Sie diese möglicherweise als offline zählen.

+0

+1 für die beste Möglichkeit, Sitzungen IMO zu verwalten, die um das Konzept der Timeouts zu arbeiten ist. Wenn der Benutzer für x Zeit nicht aktiv war, werden sie ausgeloggt. – Alex

0

mag ich Alex Antwort, wenn Sie Ihre aktiven Benutzer durch JavaScript gehen über Tracking, es wird auf jeden Fall Fehler hat aufgrund Absturz-Browser, „aktiv“ aber tatsächlich inaktiver Benutzer, die ihren Browser im Leerlauf usw. links ...

Alex 'Methode vermeidet all das.

+0

Danke für Ihre Kommentare .... – Jute

0

statt window.onunload zu verwenden, ich würde es vorziehen, window.onbeforeunload verwenden und dann einen Ajax-Aufruf machen wie logout.php folgende:

window.onbeforeunload = function(){ 
    // make an ajax call to logout.php 
}; 
+0

Vielen Dank für Ihre Kommentare ..... – Jute

Verwandte Themen