HttpContext
类的Cache
和Items
属性有什么区别?HttpContext的缓存和项目属性有什么区别?
从MSDN文档:
缓存
获取当前应用程序域的高速缓存对象。物品
获取一个密钥/值集合可用于HTTP请求期间,组织和共享IHttpModule的接口和IHttpHandler接口之间传输数据。
我真的不明白该文档试图解释什么。
在处理ASP.NET Web应用程序时,我经常使用Items
进行数据的每个请求缓存,以便多个用户控件最终不会从数据库中查找相同的数据。这在this article中描述。
今天,我遇到了Cache
属性的用法,看起来像什么,按请求缓存。我试图了解其中的差异,但找不到比较这两者的好文件。所以我想知道...
HttpContext的缓存和项目属性有什么区别?请尝试详细说明的示例,为什么您会选择在不同的真实世界场景中使用一个。
是否有任何关于用于分区'Cache'数据的请求?我们有一个网络应用程序,它为许多不同的域提供请求,每个用户有一个域。看起来我所维护的代码依赖于不同的域来分隔每个用户的缓存数据。我的意思是用户特定的数据存储在缓存中,没有任何用户ID或密钥中的任何内容。这怎么可能工作?另外,在我链接的文章中,他们在'Items'键中使用了userID,这会让我觉得'Items'是在很多用户的请求中共享的。现在我比以前更困惑...... –
缓存或会话,因为会话是用户特定的。您还可以通过将用户ID附加到缓存键来使用户特定的缓存...然后每个用户都可以拥有自己的缓存专用条目。在您提供的文章中,他们提供的方法提供了一种方法,您可以将HttpContext.Items中的数据共享到多个用户控件或自定义控件,但仅限于该用户的当前请求。然后,Items集合将在每个请求上生成,因此数据将在下一个请求中再次可用。 –