Как заголовок: есть способ, которым я могу узнать, на стороне клиента, отображается ли текущая страница при навигации по истории браузера, переходе по ссылке или обратной передаче?
Понять (через JavaScript), если текущая страница достигнута, используя историю браузера
Ответы (2)
Технически вы не можете прочитать историю браузера пользователя. Это из соображений конфиденциальности. Однако вы можете сделать что-то, чтобы выяснить, был ли пользователь перенаправлен на вашу страницу через реферер страницы. Если это обратная передача, вы можете вывести переменную на стороне сервера.
Получить реферер в javascript довольно просто
var referrer = document.referrer;
Чтобы определить, является ли это обратной передачей (в С#)
var isPostback = <%= IsPostBack %>
С историей немного сложнее. Лучшим способом обойти это было бы немедленное истечение срока действия ваших страниц.
Response.Cache.SetNoServerCaching();
Response.ExpiresAbsolute = DateTime.Now;
Но это относительно свободные решения. Зачем вам такое поведение?
Вы можете добавить штамп даты на каждую страницу. Если временная метка слишком далеко, вероятно, пользователь использовал кнопку «Назад». Но это не сработает, если браузер не загружает страницу из кеша.
Подождите, вы также можете добавить временную метку к URL-адресу. Теперь вы сравниваете временную метку страницы с временной меткой URL-адреса реферера.
Я думаю о решении с помощью файлов cookie, но не могу найти его прямо сейчас. Кто то?