Я читаю, как программно аннулировать кэшированные страницы на сервере в ASP.NET, и книга («MCTS Self-Paced Traing Kit (Exam 70-515)») говорит:
Чтобы напрямую контролировать, используется ли кэшированная версия страницы или страница генерируется динамически, ответьте на событие ValidateCacheOutput и установите допустимое значение для атрибута HttpValidationStatus.
Сегменты кода выглядят следующим образомследующее:
public static void ValidateCacheOutput(HttpContext context, Object data,
ref HttpValidationStatus status)
{
if (context.Request.QueryString["Status"] != null)
{
string pageStatus = context.Request.QueryString["Status"];
if (pageStatus == "invalid")
status = HttpValidationStatus.Invalid;
else if (pageStatus == "ignore")
status = HttpValidationStatus.IgnoreThisRequest;
else
status = HttpValidationStatus.Valid;
}
else
status = HttpValidationStatus.Valid;
}
protected void Page_Load(object sender, EventArgs e)
{
Response.Cache.AddValidationCallback(
new HttpCacheValidateHandler(ValidateCacheOutput),
null);
}
Может кто-нибудь объяснить мне, что делает этот код?Кроме того, главный вопрос, который у меня возникает, заключается в том, что я думал, что кэшированные страницы просто возвращаются с сервера, но приведенный ниже код указывает, что вызывается жизненный цикл страницы (событие Page_Load);Я в замешательстве, потому что жизненный цикл страницы не вызывается, если возвращается кэшированная страница, так как же может сработать код в событии Page_Load?
Примечание. Вот такой же пример что книга имеет