Кэширование - SetCacheability
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Кэширование - SetCacheability Expand / Collapse
Автор
Сообщение
06.10.2006 1:54
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 28.10.2007 0:53
Сообщ.: 83, Visits: 593
Почему вторая директива не перекрывает действие первой?

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Clear();
Response.Cache.SetCacheability(HttpCacheability.Private);

Сообщ. #905341
06.10.2006 1:59


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.10.2007 19:07
Сообщ.: 292, Visits: 3 426
Не понял, чё ты хотел узнать?

Пеши есчо :)

Мозя ты имел ввиду, почему у тя кэш не очищается, а мозя имел ввиду другую бяку ???

Сообщ. #905342
06.10.2006 2:21
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 28.10.2007 0:53
Сообщ.: 83, Visits: 593
А, млин, поясню: как переустановить Response.Cache.SetCacheability(HttpCacheability.NoCache) на Response.Cache.SetCacheability(HttpCacheability.Private), т.е. я сначала один поставил, потом ошибся и решил поставить другой - а оно не хочет ...
Сообщ. #905344
06.10.2006 2:43


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.10.2007 19:07
Сообщ.: 292, Visits: 3 426

А, млин, поясню: как переустановить Response.Cache.SetCacheability(HttpCacheability.NoCache) на Response.Cache.SetCacheability(HttpCacheability.Private), т.е. я сначала один поставил, потом ошибся и решил поставить другой - а оно не хочет ...

Ты в третьей строчке ничё не устанавливаешь :)

Так надо есчо второй аргумент залепить в Response.Cache.SetCacheability(HttpCacheability.Private, “ЧеУстанавить=Пиво”); 

 щоб было всё путем.

 

 смотри

http://msdn.microsoft.com/library/rus/default.asp?url=/library/rus/cpref/html/frlrfsystemwebhttpcachepolicyclasssetcacheabilitytopic2.asp

 

 

Сообщ. #905345
06.10.2006 3:31
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 28.10.2007 0:53
Сообщ.: 83, Visits: 593
Пробовал 2 варианта:

   Response.Cache.SetCacheability(HttpCacheability.NoCache,"Community=DEV");
   Response.Clear();
   Response.Cache.SetCacheability(HttpCacheability.Private,"Community=DEV");

и

   Response.Cache.SetCacheability(HttpCacheability.NoCache);
   Response.Clear();
   Response.Cache.SetCacheability(HttpCacheability.Private,"Community=DEV");

ничего не изменилось ... приведи правильный пример ...

Какие есче бывают директивы типа этой: "Community=DEV"? - и что значат?

Сообщ. #905346
06.10.2006 10:37


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.10.2007 19:07
Сообщ.: 292, Visits: 3 426
Попробуй так в третье строчке - Response.Cache.SetCacheability(HttpCacheability.Private,"ИмяТвоегоКонтрола =УстанавлимоеЗначение");

У меня такое осчусчение, що ты не понимаешь что делаешь :) 
Так я до сих пор не понял ты хочешь снять (переустановить) запрет кэширования контрола или страницы ???

Сообщ. #905351
06.10.2006 11:23
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
lurii (06.10.2006)
Почему вторая директива не перекрывает действие первой?

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Clear();
Response.Cache.SetCacheability(HttpCacheability.Private);

Ты в этом коде исходишь из предположения, что вызов методов для Response.Cache создает http заголовок, а вызов Response.Clear() очищает его. Увы, это неверно. Метод Clear() очищает только html данные, но не заголовки. Методы класса HttpCachePolicy (поле Response.Cache) только хранят настройки кеширования, но не создают никаких заголовков. Понять это можно воспользовавшись Reflector-ом.

Попробуй вызывать метод Response.ClearHeaders(), который делает вызов метода Reset для поля Cache. К сожалению этот метод помечен модификатором internal и его нельзя напрямую вызвать из своего кода.

Сообщ. #905370
06.10.2006 17:46
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 28.10.2007 0:53
Сообщ.: 83, Visits: 593
bazile - ты прав, необходимо просто вызывать ClearHeaders

   Response.Cache.SetCacheability(HttpCacheability.NoCache);
   Response.ClearHeaders();
   Response.Cache.SetCacheability(HttpCacheability.Private);

вот это уже работает - вторая директива переустановила первую

Сообщ. #905400
28.03.2007 9:19