我解决了缓存中遇到的大部分问题。但仍然有一件事。我有一个UserControl,我使用输出缓存。就像这样:
<%@ OutputCache Duration="1200" VaryByParam="none" %>
但是,正如您所看到的,控件每12分钟重新创建一次,因为生成它需要5到10秒。
现在,ASP.NET的默认行为是在用户进入页面并将其保留在缓存中12分钟时创建控件。然后,当用户再次进入页面5分钟后,再次创建控件。
有没有办法强制ASP.NET在12分钟缓存过期后重新创建控件?无论下次用户访问?
甚至是一个完美的解决方案:让我们说11分50秒之后在背景中重新创建控制,而不是仅仅在12分钟后用新的替换实际控制?
感谢您的帮助!
答案 0 :(得分:1)
使用Windows计划任务每12分钟进入一次此页面,因为ASP.NET仅适用于触发器。触发器可以是每12分钟请求其他页面的Ajax,也可以是访问您网页的下一个用户。
答案 1 :(得分:0)
我不确定,但听起来您希望在用户查看页面时,您可以按时间间隔异步更新控件?
如果是这样,您需要使用Ajax。例如,Timer控件允许以设定的时间间隔异步更新UpdatePanel。
顺便说一下,你的例子中的持续时间实际上是20分钟。