【发布时间】:2018-05-14 19:29:16
【问题描述】:
我有一个 .net 网站,一个浏览器游戏,整个游戏每 10 分钟“翻转一次”,而翻转本身需要 5-10 秒。我有很多 GridViews 绑定到 sqldatasource 对象中相对繁重的查询,100 名玩家在回合之间刷新。这些网格在转弯之间几乎没有任何变化,所有真正的更新都发生在转弯翻转期间,所以我想在这些网格上启用缓存,因为它们是相对繁重的查询。然而,轮流在时钟上每 10 分钟翻转一次,而不是“每 10 分钟”。我不能只将 CacheDuration 设置为 600,因为根据您第一次访问特定网格的时间,从那时起 10 分钟可能会进入另一个回合。
我需要一种动态设置 CacheDuration 的方法,以便它在时钟到达的第 10 分钟时到期。我想有几种方法可以做到这一点:
我可以检查被绑定的特定 sqldatasource 是否存在缓存,如果不存在,则检查当前时间并适当设置缓存持续时间,使其在第 10 分钟到期。
或
当任何页面在与上一回合不同的回合加载时,也许有一种干净的方法可以清除一组 sqldatasources 中的所有缓存。已经有一个应用程序级别的变量来跟踪打开游戏的原因并检测页面何时在不同的回合加载。这可能会触发这样的缓存清除。
【问题讨论】:
标签: .net webforms sqldatasource