日期:2014-05-19  浏览次数:20421 次

关于outputcache的问题?
outputcache的确带来了方便,但也带来了问题:
如首页对一个显示新闻的用户控件进行了cache,
但如果后台进行了新闻的更新,如添加或修改,
在首面上还是原来的那些条目,不能及时反应出来.

请问:如果在后台对新闻内容更新时,能对outputcache缓存清空一下,
这样使首面内容能及时更新.

不想把duration的时间设得过短,因为更新的频率不大.但如果更新了,希望能及时在首页上加以显示.

请教各位了.

------解决方案--------------------
在Page_Load里写上
Response.Cache.AddValidationCallback(new HttpCacheValidateHandler(ValidateCacheOutputFunction), null);

然后每次取缓存的时候都会调用ValidateCacheOutputFunction函数
public static void ValidateCacheOutputFunction(HttpContext context, Object data, ref HttpValidationStatus status)

(注意是个静态函数).如果你觉得缓存有效,就设status = HttpValidationStatus.Valid;

无效就设status = HttpValidationStatus.Invalid;

自己去MSDN查查吧.