L'unico modo in cui puoi fare qualcosa quando la pagina viene chiusa o estratta da è collegare un gestore di eventi all'evento di scaricamento, come suggerisce Rocket. Tuttavia, non dovresti fare affidamento su questo evento per attivarsi, poiché molte cose potrebbero impedirlo. Il browser potrebbe interromperlo per concentrare le sue risorse su altre attività, l'utente potrebbe perdere la connessione, il browser potrebbe essere terminato, ecc.
Il modo più affidabile per tenere traccia degli utenti e della sessione consiste nell'inviare messaggi keepAlive al server a un determinato intervallo. Quindi saprai che l'utente è rimasto a un certo punto tra un determinato timestamp e l'intervallo del messaggio keepAlive.
Sul server, puoi quindi attraversare le sessioni che non sono state mantenute in vita da un po' ed eseguire tutte le operazioni di cui hai bisogno.
Tuttavia, questo approccio non sarà necessario se hai solo bisogno di creare un fantastico effetto di "disconnessione".