Mico Perez Ответов: 6

Как принудительно очистить кэш в asp.net


Как принудительно очистить кэш в asp.net

6 Ответов

Рейтинг:
2

Mico Perez

я пробую это сделать, но, похоже, ничего не получается

общественного недействительными DisablePageCaching()
{
// Используется для отключения кэширования страниц
Свойство HttpContext.Тока.Ответ.Кэш.SetExpires(DateTime.UtcNow.AddDays(-1));
Свойство HttpContext.Тока.Ответ.Кэш.SetValidUntilExpires (false);
Свойство HttpContext.Тока.Ответ.Кэш.SetRevalidation(HttpCacheRevalidation.AllCaches);
Свойство HttpContext.Тока.Ответ.Кэш.SetCacheability (HttpCacheability.NoCache);
Свойство HttpContext.Тока.Ответ.Кэш.SetNoStore();
Свойство HttpContext.Тока.Ответ.Кэш.SetExpires(DateTime. Now. AddSeconds(-1));
}

команды clearcache частный недействительными ()
{
Запись DictionaryEntry = default(DictionaryEntry);
foreach (DictionaryEntry entry_loopVariable in System.Web.HttpContext.Current.Кэш)
{
запись = entry_loopVariable;
Системы.Веб.Свойство HttpContext.Тока.Кэш.Удалить (entry. Key.ToString());
}

IDictionaryEnumerator перечислитель = свойство HttpContext.Тока.Кэш.Метод getenumerator();

в то время как (перечислитель.метод MoveNext())
{
Свойство HttpContext.Тока.Кэш.Удалить (enumerator. Key.ToString());
}
Свойство HttpContext.Тока.Ответ.ClearHeaders();
Свойство HttpContext.Тока.Response. Expires = 0;
Свойство HttpContext.Тока.Ответ.CacheControl = " no-cache";
Свойство HttpContext.Тока.Ответ.Кэш.SetCacheability (HttpCacheability.ServerAndNoCache);
Свойство HttpContext.Тока.Ответ.Кэш.SetNoStore();
Свойство HttpContext.Тока.Ответ.Буфер = true;
Свойство HttpContext.Тока.Ответ.ExpiresAbsolute =Датавремя.Сейчас.Вычитание(новый промежуток времени(1,0,0,0));
Свойство HttpContext.Тока.Ответ.AppendHeader ("Pragma", " no-cache");
Свойство HttpContext.Тока.Ответ.AppendHeader("", "");
Свойство HttpContext.Тока.Ответ.AppendHeader ("Cache-Control", "no-cache"); / / HTTP 1.1
Свойство HttpContext.Тока.Ответ.AppendHeader ("Cache-Control", "private"); / / HTTP 1.1
Свойство HttpContext.Тока.Ответ.AppendHeader ("Cache-Control", "no-store"); / / HTTP 1.1
Свойство HttpContext.Тока.Ответ.AppendHeader ("Cache-Control", "must-revalidate"); / / HTTP 1.1
Свойство HttpContext.Тока.Ответ.AppendHeader ("Cache-Control", "max-stale=0"); / / HTTP 1.1
Свойство HttpContext.Тока.Ответ.AppendHeader ("Cache-Control", "post-check=0"); / / HTTP 1.1
Свойство HttpContext.Тока.Ответ.AppendHeader ("Cache-Control", "pre-check=0"); / / HTTP 1.1
Свойство HttpContext.Тока.Ответ.AppendHeader ("Pragma", "no-cache"); / / HTTP 1.1
Свойство HttpContext.Тока.Ответ.AppendHeader ("Keep-Alive", "timeout=3, max=993"); / / HTTP 1.1
}


Anuj Banka

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

Рейтинг:
2

devildx2050

< script type= "text/javascript">
<!--
проблемы функции () {
var clocktime = новая дата();
var utchours = clocktime. getUTCHours();
var utcminutes = clocktime. getUTCMinutes();
var utcseconds = clocktime. getUTCSeconds();
var utcyear = clocktime. getUTCFullYear();
var utcmonth = clocktime. getUTCMonth()+1;
var utcday = clocktime. getUTCDate();

if (utchours < 10) { utchours = "0" + utchours }
if (utcminutes < 10) { utcminutes = "0" + utcminutes }
if (utcseconds < 10) { utcseconds = "0" + utcseconds }
if (utcmonth < 10) { utcmonth = "0" + utcmonth }
if (utcday < 10) { utcday = "0" + utcday }

var utctime = utcyear + utcmonth + utcday;
utctime += utchours + utcminutes + utcseconds;
x = utctime

жизнью = собственн.расположение.слишком
если(!жизнью.матч('#','х')) {
самостоятельно.расположение.заменить(жизнью + '#' + х)
}
}

//-->
< / script>

< / head>
& lt;body onLoad= "reloadIt ()" >


Рейтинг:
2

Morgs Morgan

Попробуй:

1. Установите кэш

Cache[ "username" ] = "username";
Cache[ "password" ] = "password";


2. Используйте кэш
if( Cache[ "username" ] != null && Cache[ "password" ] != null )
{
   //cache is still alive
   String username = Cache[ "username" ].ToString();
   String password= Cache[ "password" ].ToString();
}
else
{
   //show error, cache objects do not exist!
}


3. Очистить кэш
Cache[ "username" ] = null;
Cache[ "password" ] = null;


Счастливое кодирование,
Морги


Рейтинг:
1

Anuj Banka

Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
 Response.Cache.SetCacheability(HttpCacheability.NoCache);
 Response.Cache.SetNoStore();


Поместите этот код в загрузку страницы. Теперь в кэше не будет данных браузер будет пытаться получить страницу с сервера


Member 13603097

это не работает

Рейтинг:
1

Sanjay Kumar Dwivedi

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

Объект HttpResponse.RemoveOutputCacheItem("/pagecontentdetail.aspx-файл")


Dave Kreskowiak

Почему вы отвечаете на вопросы 3-летней давности?? - НЕ НАДО!

copa017

Почему не отвечает на 3-летний вопрос Дэйв???
Такие люди, как я, приходят сюда, гуглят эту проблему (это один из первых результатов поиска), поэтому очень полезно иметь обновленные ответы - и они предназначены не только для Т. О..

Dave Kreskowiak

Потому что то, что подходит для одной версии ASP.NET возможно, он не подходит для более новых версий.

Кроме того, этот ответ не дает вам никакого контроля над политикой кэширования. Вместо этого это "убийство одним выстрелом" для всей страницы. Более распространенным является кэширование страницы, но не определенных элементов на странице, таких как таблицы данных.

Рейтинг:
1

mikecran

Попробуй:

1. Установите кэш
Кэш ["username"] = " username";
Кэш ["пароль"] = " пароль";

2. Используйте кэш
if (Cache ["username" ] != null && Cache ["password"] ! = null )
{
// кэш все еще жив
String username = Cache ["username" ]. ToString();
String password= Cache ["password" ]. ToString();
}
ещё
{
//show error, объекты кэша не существуют!
}

3. Очистить кэш
Кэш.Удалить ("имя пользователя");
Кэш.Удалить ("пароль");