asp.net计时器是否清除缓存?

时间:2014-04-19 01:47:14

标签: asp.net caching timer webforms asp.net-ajax

我有一个我一直在使用的页面,它提供了大量数据供人们查看。关于每分钟的数据更新...因此,为了减少服务器负载,我将页面缓存60秒:

    '-----Set Cache
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
    Response.Cache.SetCacheability(HttpCacheability.Server)
    Response.Cache.SetValidUntilExpires(True)
    '---------------

这很有效......但现在我添加了一个asp.net Timer并将间隔设置为30秒进行测试。

我在页面上有一个时间戳,当timer.tick事件发生并更新updatepanel时,时间戳正在改变。

Protected Sub tmr_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tmr.Tick
    updatePanel.Update()
End Sub

在计时器之前,由于缓存,时间戳在浏览器刷新时保持不变。现在看来他们正在更新每个tick事件(消除缓存的目的)。

即使在并排的2个浏览器中,每个浏览器的每次更新都会更新时间戳......

所以看起来计时器丢失了缓存而无法达到目的。

有谁知道如何解决这个问题? 该页面没有任何控件(按钮,下拉列表等),它只显示网格中的数据(以编程方式插入的多个用户控件实例)。

1 个答案:

答案 0 :(得分:1)

您添加的内容 - 基本上缓存了页面的GET请求。 POST(计时器触发时)通常不会被缓存。我建议您缓存实际页面,但'大量数据'的结果。请看一下HttpRuntime.Cache Should I use HttpRuntime.Cache?