ASP.NET重新创建缓存控件

时间:2010-07-06 07:20:15

标签: asp.net caching user-controls outputcache

我解决了缓存中遇到的大部分问题。但仍然有一件事。我有一个UserControl,我使用输出缓存。就像这样:

<%@ OutputCache Duration="1200" VaryByParam="none" %> 

但是,正如您所看到的,控件每12分钟重新创建一次,因为生成它需要5到10秒。

现在,ASP.NET的默认行为是在用户进入页面并将其保留在缓存中12分钟时创建控件。然后,当用户再次进入页面5分钟后,再次创建控件。

有没有办法强制ASP.NET在12分钟缓存过期后重新创建控件?无论下次用户访问?

甚至是一个完美的解决方案:让我们说11分50秒之后在背景中重新创建控制,而不是仅仅在12分钟后用新的替换实际控制?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

使用Windows计划任务每​​12分钟进入一次此页面,因为ASP.NET仅适用于触发器。触发器可以是每12分钟请求其他页面的Ajax,也可以是访问您网页的下一个用户。

答案 1 :(得分:0)

我不确定,但听起来您希望在用户查看页面时,您可以按时间间隔异步更新控件?

如果是这样,您需要使用Ajax。例如,Timer控件允许以设定的时间间隔异步更新UpdatePanel。

顺便说一下,你的例子中的持续时间实际上是20分钟。