Кнопка «Назад» обычно возвращает пользователя к предыдущему URL. Браузер может кэшировать содержимое страницы и показывать устаревшие данные. Вы можете сказать браузеру не кэшировать определенные c страницы.
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
Кроме того, любое пользовательское решение c завершится неудачей, если один пользователь изменяет данные, а другой просто просматривает их. Вы должны принудительно получать данные с сервера при каждой загрузке страницы. Следовательно, заголовки без кэширования
ОБНОВЛЕНИЕ:
Чтобы вернуть пользователей туда, куда вы хотите, вы можете использовать другой параметр, указывающий «обратный» целевой URL. Например,
www.mysite.com/client.php?id=1234&backdestination=list.php%3Fshow%3D123
//list.php?show=123
, затем на странице создайте кнопку / ссылку и используйте значение из backdestination
ОБНОВЛЕНИЕ 2:
Вы можете проверить window.History
API и в частности replaceState
метод. Технически это позволяет вам указать, где находится «назад». Тем не менее, вам все равно нужно переносить URL backdestination
между запросами. Либо через параметр GET, переменную сеанса или локальное хранилище.
Возможно, вы могли бы обобщить реализацию, всегда сохраняя историю последних X URL. Затем, если вам нужно изменить задний пункт назначения, используйте какой-то алгоритм, чтобы определить, откуда пришли пользователи. Например, перевести пользователя на последний URL, где имя файла сценария не является текущим:
история запросов:
/list.php
/list.php?page=2
/client.php?id=123 // User viewing the client
/client.php?id=123 // Page reload after POST
Теперь, если пользователь щелкает назад, тот же клиент. php загружено. Однако вы можете создать общий сценарий c, который изменяет объект History с replaceState()
.
Надеюсь, это даст вам некоторые идеи.