【问题标题】:Does asp.net timer clear Cache?asp.net 计时器是否清除缓存?
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-09
      • 2017-08-08
      • 1970-01-01
      • 2021-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多