0

我正在研究缓存失效机制,遇到了 HttpValidationStatus.IgnoreThisRequest。

我了解,当指定此项时,ASP.Net 会将响应视为缓存未命中。

另一点是此响应中收到的动态值不会替换现有缓存,因此后续请求将使用已缓存的结果。

  1. 这样的机制有什么用?
  2. 为什么有人想要使用已经缓存的结果,即使有了最新的结果?
4

1 回答 1

0

使用 HttpValidationStatus.IgnoreThisRequest。适用于您不想仅为该请求显示缓存页面的情况。

例子:

public void Page_Load()
{
  Response.Cache.AddValidationCallback(new HttpCacheValidateHandler(ValidateCache), null);
}

public static void ValidateCache(HttpContext context, Object data, ref HttpValidationStatus status) 
{
    validationstatus = context.Request.IsAuthenticated ? HttpValidationStatus.IgnoreThisRequest : HttpValidationStatus.Valid;
}

在这种情况下,我想为除登录用户之外的所有人提供缓存页面。

考虑一个 cms:我可能希望编辑器看到刚刚编辑的页面,而不是缓存的页面。

于 2014-10-24T07:52:49.420 回答