Jedynym sposobem, w jaki możesz coś zrobić, gdy strona jest zamknięta lub opuszczona, jest dołączenie obsługi zdarzeń do zdarzenia unload, jak sugeruje Rocket. Jednak nie powinieneś polegać na tym, że to zdarzenie zostanie wywołane, ponieważ wiele rzeczy może temu zapobiec. Przeglądarka może go zatrzymać, aby skoncentrować swoje zasoby na innych zadaniach, użytkownik może stracić połączenie, przeglądarka może zostać zamknięta itp.
Najbardziej niezawodnym sposobem śledzenia użytkowników i sesji jest wysyłanie przez nich komunikatów keepAlive do serwera w określonych odstępach czasu. Wtedy będziesz wiedział, że użytkownik wyszedł gdzieś pomiędzy podanym znacznikiem czasu a interwałem wiadomości keepAlive.
Na serwerze możesz następnie przemierzać sesje, które nie były utrzymywane przez jakiś czas, i wykonywać dowolne operacje.
Jednak takie podejście nie będzie konieczne, jeśli potrzebujesz tylko stworzyć fajny efekt „wylogowania”.