在这种情况下缓存是一个好主意,如果是这样的话

时间:2012-10-04 14:09:49

标签: c# asp.net caching sql-server-2008-r2

我正在使用带有sql server 2008 r2的asp.net

我正在建立一个网站,用户可以根据数据库中的信息运行报告。对于其中一个报告,我有大约6个复选框列表,它们根据数据库中的信息动态加载,然后用户可以选择某些框来缩小将包含在报告中的信息。

填充这些复选框列表的数据不会更新,但每隔几天就会更新一次。现在,我在每个复选框列表的初始化控件事件中加载了复选框。每次我选择一个不同的选项卡,然后回到包含这些复选框列表的选项卡时,似乎每次重新加载复选框列表,这很慢,大约需要6-10秒。

我不熟悉缓存,这是否有助于缓存加载到复选框列表中的数据,以便网站不需要执行连续加载?

2 个答案:

答案 0 :(得分:1)

是的,缓存在这种情况下会有所帮助。

您可以在此处详细了解缓存应用程序数据:http://msdn.microsoft.com/en-us/library/6hbbsfk6(v=vs.100).aspx

您可以在数据访问层缓存,然后您的逻辑将是:

  • 获取复选框数据
    • 检查数据是否存储在缓存中
      • 如果是,请将其退回
      • 如果没有,请点击数据库,将结果存储在缓存中,然后将其返回。

有关如何添加和读取缓存的具体信息,请参阅上面的链接。

答案 1 :(得分:0)

是 如果你是通过Ajax加载数据的复选框,那么你应该使用ASP.NET输出缓存功能。

如果在服务器上呈现它们 - 您可以将数据存储在某些DataObject(某个对象的单个或静态字段)中,以便它可供服务器所服务的所有请求使用。

您可以将此功能包装在单个对象中,初始化时从数据库加载数据,然后在每次获取数据时检查是否应重新加载(并在需要时重新加载)