Отключите кэш страницы, чтобы принудительно загрузить страницу с помощью кнопки возврата браузера - PullRequest
14 голосов
/ 07 мая 2009

У меня есть сайт asp.net, использующий панели обновления на странице, которую я не могу загрузить с сервера. У меня это для отключения кеша страниц на главной странице.

     Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1))
     Response.Cache.SetValidUntilExpires(False)
     Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches)
     Response.Cache.SetCacheability(HttpCacheability.NoCache)
     Response.Cache.SetNoStore()

Когда я нажимаю кнопку возврата браузера, чтобы вернуться на страницу, на которой написано, что срок действия страницы истек. Другие страницы на моем веб-сайте работают и вызывают загрузку страницы, единственное решение, которое я нашел, но не могу использовать, - это перенести всю страницу на панель обновлений, но я не могу этого сделать, потому что у меня есть средство просмотра отчетов на странице, которая не работает с ajax. Если кто-то может помочь, я был бы очень признателен.

Ответы [ 3 ]

1 голос
/ 23 января 2014

Это не проблема кеша браузера; Это постбэк. Вы должны внедрить шаблон Post / Redirect / Get, чтобы избежать сообщения «Вы хотите отправить снова? / Страница устарела».

http://en.wikipedia.org/wiki/Post/Redirect/Get

Классический пример этой вещи - когда на веб-странице есть кнопка сохранения, которая вставляет что-то в базу данных. Нажата кнопка «Сохранить» -> происходит обратная передача -> код вставляет строку в таблицу -> пользователь обновляет страницу (F5) -> повторная передача происходит снова -> код вставляет эту же строку снова.

Чтобы избежать двойной вставки в предыдущем примере, вам нужно перенаправить при нажатии кнопки «сохранить» и только после этого выполнить вставку.

0 голосов
/ 19 июля 2013

Для перезагрузки страницы с помощью JavaScript используйте следующее:

window.location.replace(window.location.pathname);
0 голосов
/ 22 октября 2009

Просто добавьте это в свой файл представления в заголовке:

<head>
<script language="JavaScript">
<!--
javascript:window.history.forward(1);
//-->
</script>
</head>

В теге body добавьте это:

<body onUnload="OperaReload()">
<input type="hidden" id="refreshed" value="no">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...