Per quanto ne so, non puoi effettivamente verificare la chiusura del browser; puoi solo verificare la chiusura di una finestra (o scheda). Ciò generalmente è sufficiente, a meno che ovviamente non si verifichi un aggiornamento della pagina, poiché conta sia come chiudere che come riaprire una pagina Web all'interno di una finestra o scheda. Ciò che serve è un gestore di eventi per un clic sul pulsante di aggiornamento della pagina del browser, ma non sono sicuro che esista. Ecco qualcosa:
Come mostrare "Sei sicuro di voler uscire da questa pagina?" quando sono state apportate modifiche?
e anche
Gestione dell'evento di chiusura del browser e dell'aggiornamento della pagina
Una cosa che ho riscontrato nel tentativo di trovare qualcosa su un gestore di eventi di aggiornamento della pagina è l'idea di utilizzare "archiviazione locale". È possibile, come parte del gestore di prima dello scaricamento, inserire un piccolo elemento di dati, con data e ora, nell'archivio locale. Attivare una sorta di timer sul Server e attendere che scada tale tempo prima di cancellare la sessione. Quando la tua pagina viene caricata, verifica l'archiviazione locale per quell'elemento di dati. Se esiste e il timestamp era molto recente, sai che la pagina è stata aggiornata e puoi fare le cose appropriate basandoti su ciò, come inviare un messaggio AJAX al server dicendogli di non cancellare ancora la sessione.