Есть ли способ очистить браузер пользователя от моей страницы или, скажем, не использовать кеш?
-
02-07-2019 - |
Вопрос
Есть ли в классическом ASP команда, которую я могу использовать, чтобы сказать браузеру не извлекать страницу из своего кеша, не кешировать или не очищать кеш моей страницы?
Решение
Вы можете использовать метатеги HTML:
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="Fri, 01 Jan 1999 1:00:00 GMT" />
<meta http-equiv="Last-Modified" content="0" />
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
Или вы можете использовать заголовки ответов ASP:
<%
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1
%>
Другие советы
Это не связано с asp, это вопрос HTTP.Вы делаете это, изменяя некоторые аспекты http-кэширования, такие как Cache-Control, etag, Expires и т. д.Читать RFC2616 особенно Кэширование в HTTP и установите соответствующий заголовок.
Игнорируйте всех, кто говорит вам использовать <meta>
элементы или Pragma
.Они очень ненадежны.Вам необходимо установить соответствующие заголовки HTTP.Доступен хороший учебник о том, как решить, какие HTTP-заголовки вам подходят. здесь. Cache-Control: no-cache
вероятно, это все, что вам нужно, но прочитайте руководство, поскольку существует множество конкретных причин, по которым вам может понадобиться что-то другое.
Если вы поставите
Response.Expires = -1
на вашей классической ASP-странице он будет указывать браузеру не кэшировать содержимое.Если пользователь нажмет «назад» или перейдет на страницу другим способом, браузер обновит страницу с сервера.
Это можно сделать, убедившись, что для Reponse.cachecontrol, response.expires и т. д. установлены правильные значения в соответствии с вашими потребностями.Эта ссылка может быть полезна для понимания того, что они означают. http://aspjavascript.com/lesson07.asp
Из-за особенностей кэширования в разных браузерах необходимо использовать команды Expires и no-cache.Вот статья показывая правильный способ сделать это.