Доколкото знам, всъщност не можете да тествате дали браузърът е затворен; можете да тествате само дали прозорец (или раздел) е затворен. Това обикновено е достатъчно, освен ако разбира се не се случи опресняване на страницата, тъй като се брои както за затваряне, така и за повторно отваряне на уеб страница в прозорец или раздел. Това, което е необходимо, е манипулатор на събития за щракване върху бутона за опресняване на страницата на браузъра, но не съм сигурен, че такъв съществува. Ето нещо:
Как да покажа "Сигурни ли сте, че искате да излезете от тази страница?" кога са извършени промени?
и също така
Обработка на събитие за затваряне на браузъра и опресняване на страница
Едно нещо, което срещнах, опитвайки се да намеря нещо за манипулатор на събитие за опресняване на страница, е идеята за използване на "локално хранилище". Бихте могли, като част от манипулатора преди разтоварване, да поставите малък елемент от данни с времеви печат в локално хранилище. Активирайте един вид таймер на сървъра и изчакайте това време да изтече, преди да изтриете сесията. Когато страницата ви се зареди, тествайте локалното хранилище за този елемент от данни. Ако съществува и времевият печат е бил съвсем скорошен, вие знаете, че страницата е била обновена и можете да правите подходящи неща въз основа на знанието за това -- като изпращане на AJAX съобщение до сървъра, което му казва да не изтрива сесията все още.