【发布时间】:2014-06-03 14:19:28
【问题描述】:
我有一个我一直在使用的页面,它可以提取大量数据供人们查看。数据大约每分钟更新一次......所以为了减少服务器负载,我将页面缓存 60 秒:
'-----Set Cache
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
Response.Cache.SetCacheability(HttpCacheability.Server)
Response.Cache.SetValidUntilExpires(True)
'---------------
效果很好……但现在我添加了一个 asp.net 计时器并将间隔设置为 30 秒以进行测试。
我在页面上有一个时间戳,当 timer.tick 事件发生并更新更新面板时,时间戳正在改变。
Protected Sub tmr_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tmr.Tick
updatePanel.Update()
End Sub
在计时器之前,时间戳将在浏览器刷新时保持不变,因为缓存。现在看来他们正在更新每个滴答事件(消除缓存的目的)。
即使在 2 个浏览器中并排使用,时间戳也会在每个浏览器的每次更新时更新...
所以看来计时器丢失了缓存并没有达到目的。
有谁知道如何解决这个问题? 该页面没有任何控件(按钮、下拉菜单等),它只是在网格中显示数据(以编程方式插入的多个用户控件实例)。
【问题讨论】:
标签: asp.net caching timer webforms asp.net-ajax