Как предотвратить обслуживание кэшированной страницы, когда пользователь нажимает кнопку «Назад»? - PullRequest
2 голосов
/ 17 июня 2011

Я знаю, что этот вопрос задавался несколько раз ранее, но опубликованные решения не работают для меня.

Я поместил следующее в тег <head>, но безрезультатно:

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">

Я также видел упоминание об атрибуте onunload и bfcache в браузерах, поэтому добавил его к тегу <body>, но также безрезультатно.

Заголовки ответа с моего серверасодержать:

Cache-Control   max-age=0, private, must-revalidate

Был бы признателен, если бы кто-то мог указать мне правильное направление здесь - что я делаю неправильно?

Ответы [ 3 ]

6 голосов
/ 23 июня 2011

Отвечая на мой собственный вопрос.Как оказалось, настройка следующих заголовков ответа (в отличие от тегов META) работала для меня:

Cache-Control private, no-store, max-age=0, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma no-cache
Expires Fri, 01 Jan 1990 00:00:00 GMT

Если вы работаете в Rails, как я, вы можете легко это сделать, поставивследующее в ApplicationController before_filter обратном вызове:

response.headers["Cache-Control"] = "private, no-store, max-age=0, no-cache, must-revalidate, post-check=0, pre-check=0"
response.headers["Pragma"] = "no-cache"
response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
1 голос
/ 17 июля 2014

Вы можете перезагрузить страницу входа в систему с помощью reload () после завершения сеанса в режиме веселья http (), это обновит локальный кеш. После завершения сеанса перезагрузка переместит вас на страницу входа. Даже если вы нажмете кнопку «Назад» в браузере, страница входа останется, так как локальный кеш обновляется.

1 голос
/ 17 июня 2011

Использование кнопки «Назад» будет использовать кеш, как сказал @kindall. Это действительно зависит от того, что вы не хотите кэшировать.

Вместо того, чтобы поощрять пользователей использовать кнопку "Назад", можете ли вы структурировать навигацию по страницам так, чтобы пользователь всегда мог добраться туда, куда он хочет, без необходимости использовать кнопку "Назад"?

Вещи, которые вы не хотите кэшировать, можете ли вы загружать их динамически через ajax?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...