2011-05-06 97 views
5

我想缓存从数据库中取出的对象,这些对象通常不会被修改,因为每次页面加载时将近2000个项目被选中,导致页面加载期间出现明显的性能问题。httpcontext中的asp.net缓存

审查 here和一些MSDN文章(最相关的是 here)看来,这些都是解决方案,以防止单个用户做多次往返到数据库中,并且一旦HttpRequest中关闭这个缓存就会过期后。

任何人都可以清除混淆,如果找到适用的参考?

回答

6

你想存储项目在HttpRuntime.Cache项目将存在于你的应用程序域的持续时间,他们到期,或被清除。哪个先发生。请注意,这与HttpContext.Current.Cache完全相同,它指向HttpRuntime.Cache。调用后者更容易在服务层中使用,因为您不必关心是否存在上下文。缓存始终存在。

存储在HttpContext.Current.Request.Items中的项目只会在该请​​求期间存在。这对存储单个请求信息非常有用,可以通过应用程序的多个层读取/写入。