O ile wiem, nie można właściwie przetestować zamykania przeglądarki; możesz tylko przetestować, czy okno (lub karta) jest zamknięte. To generalnie wystarcza, chyba że oczywiście nastąpi odświeżenie strony, ponieważ liczy się to zarówno jako zamknięcie, jak i ponowne otwarcie strony internetowej w oknie lub karcie. Potrzebny jest program obsługi zdarzeń do kliknięcia przycisku odświeżania strony w przeglądarce, ale nie jestem pewien, czy taki istnieje. Oto coś:
Jak wyświetlić komunikat „Czy na pewno chcesz opuścić tę stronę?” kiedy zmiany zostały zatwierdzone?
a także
Obsługa zdarzenia zamknięcia przeglądarki i odświeżania strony
Jedną z rzeczy, na które natknąłem się, próbując znaleźć coś na temat obsługi zdarzeń odświeżania strony, jest pojęcie korzystania z „pamięci lokalnej”. Możesz, jako część procedury obsługi przed rozładowaniem, umieścić mały element danych, oznaczony sygnaturą czasową, w lokalnej pamięci masowej. Aktywuj rodzaj licznika czasu na serwerze i poczekaj, aż upłynie ten czas, zanim skasujesz sesję. Po załadowaniu strony przetestuj pamięć lokalną dla tego elementu danych. Jeśli istnieje, a znacznik czasu był bardzo aktualny, wiesz, że strona została odświeżona i możesz zrobić odpowiednie rzeczy na podstawie wiedzy o tym -- na przykład wysłanie wiadomości AJAX do serwera z informacją, aby nie usuwał jeszcze sesji.