Как я могу убедиться, что браузер не кэширует страницу - PullRequest
2 голосов
/ 30 сентября 2011

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

Это должно работать одинаково во всех браузерах.

Ответы [ 2 ]

1 голос
/ 30 сентября 2011

Единственный способ, которым я смог добиться этого надежно, особенно с AJAX, - добавить на страницу URL токен строки запроса, такой как DateTime.Now.Ticks.

Вы не можете рассчитывать на <META> теги.

http://bla.com/bla.aspx?token=348343889
0 голосов
/ 30 сентября 2011

Попробуйте это:

РЕДАКТИРОВАТЬ - Добавлено SetNoStore()

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();

Я думаю, вы тоже можете сделать это так:

<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">

Вот решение, специфичное для Safari:

<body onunload="" ...>

Вот еще одно решение, но оно немного взломано:

<script type="text/javascript">
function noBack(){window.history.forward();}
noBack();
window.onload=noBack;
window.onpageshow=function(evt){if(evt.persisted)noBack();}
window.onunload=function(){void(0);}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...