3

我解决了我在缓存方面遇到的大部分问题。但还有一件事。我有一个使用输出缓存的 UserControl。像这样:

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

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

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

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

甚至是一个完美的解决方案:假设 11 分 50 秒后在后台重新创建控制,而不是在 12 分钟后用新的替换实际控制?

感谢帮助!

4

2 回答 2

1

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

于 2010-07-06T07:26:54.380 回答
0

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

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

顺便说一句,您在示例中的持续时间实际上是 20 分钟。

于 2010-07-06T07:31:00.727 回答