В web-интерфейсе Gmail навигация по письмам сделана следующим образом:
Изначально мы на странице «Входящие»
https://mail.google.com/mail/?hl=ru&shva=1#inbox
Нажимаем на письмо и попадаем на
https://mail.google.com/mail/?hl=ru&shva=1#inbox/12c4911509040a02
При этом открывается само письмо.
Как видно, мы работаем через «решетку»
#, поэтому перезагрузки страницы не происходт, вместо этого происходит переход «по якорю». Тем не менее, URL меняется, и браузер делает переход без отправки запроса на сервер, в результате чего мгновенно открывается текст письма (который уже где-то хранился в DOM и посредством JS выводится пользователю), и становится доступной кнопка «Назад» в браузере, что очевидно. Если ее нажать, мы возвращаемся к списку писем, текст письма при этом скрывается, конечно же без перезагрузки страницы, и это очень быстро работает.
Вопрос: Как это работает? Конкретно, после нажатия «Назад». Ведь мы работаем на одной странице, нужно как-то закрыть открытое письмо. Как работает этот механизм? Какое события обрабатывается? Надеюсь, суть вопроса ясна.