Обнаружение пользователя нажатием кнопки назад без Javascript? - PullRequest
1 голос
/ 19 марта 2011

Я знаю, что есть способы узнать, нажал ли пользователь кнопку назад с помощью Javascript, но есть ли способ узнать, не прибегая к Javascript?Есть ли решение, которое включает в себя просто просмотр URL-адресов реферера?

Ответы [ 2 ]

4 голосов
/ 19 марта 2011

Без javascript №.

Проблема в том, что кнопка «назад» не гарантирует попадания на сервер. Он может кэшировать клиентскую часть страницы, и даже если он попадет на сервер (загрузит страницу), он получит запрос от начального попадания, а не тот, который пришел со страницы, на которой вы только что были. Кнопка «Назад» не добавляет «реферальную» информацию в запрос. Это просто возвращает нас к последнему, что вы сделали, не отправляя информацию о том, где вы только что были.

Вы должны обработать эту клиентскую сторону.

1 голос
/ 19 марта 2011

Да, это возможно.Это состоит из двух частей:

  1. Каждый URL должен содержать уникальный токен.На стороне сервера вы отслеживаете текущие и прошлые токены.Когда приходит запрос, если токен совпадает с предыдущим токеном, была нажата кнопка «Назад».Если он равен текущему токену, обработайте запрос как обычно.В противном случае не удается выполнить запрос.
  2. Теперь страница могла быть кэширована, и ваш сервер может не увидеть запрос.Таким образом, вы должны принять меры, чтобы победить кеш браузера.Установка следующих заголовков http должна заставить браузер отправлять запрос -

    Cache-Control : no-Cache
    Pragma : No-Cache
    Expires : Thu, 01 Jan 1970 00:00:00 GMT

Поскольку это возможно, это не значит, что вы должны его использовать.Backbutton - это важная техника для Интернета, и ломать ее - плохое удобство использования.

...