Ich arbeite an einem Websystem, das überprüfen muss, ob es online ist. Ich habe der Benutzertabelle ein Online-Feld hinzugefügt. Es gibt eine Schaltfläche zum Beenden auf der Website Wenn Sie auf die Schaltfläche klicken, um den Vorgang normal zu beenden, wird das Online-Feld der Benutzertabelle auf 0 gesetzt. Das Löschen der Sitzung und das Verlassen der Website ist kein Problem, es ist jedoch nicht möglich, den Online-Status des Benutzers in „Offline“ zu ändern, nachdem der Benutzer die Website direkt geschlossen hat Fenster oder Browser. Ich versuche derzeit, JS zu verwenden, um zu überwachen, ob der Benutzer das Fenster oder den Browser schließt, und fügt dann dem Schließereignis eine Exit-Methode hinzu. Einige im Internet gefundene JS-Codes zum Überwachen des Schließens des Browsers sind wie folgt:
<script type="text/javascript">
window.onbeforeunload = function(e) {
e = e || window.event;
var msg = "您确定要离开此页面吗?";
// IE
e.cancelBubble = true;
e.returnValue = msg;
// Firefox
if(e.stopPropagation) {
e.stopPropagation();
e.preventDefault();
}
// Chrome / Safari
return msg;
};
</script>
Methoden wie onbeforeunload oder onload können die Aktionen zum Schließen des Browsers/Aktualisieren der Seite/Springen zur Seite nicht bestimmen. Bitte geben Sie mir einen Rat
每间隔1s通知服务期该客户端在线,在服务端确认,如果失去客户端联系,则确认离线。
用websocket