0
为了使Web应用程序更快,我想实现缓存。有一个包含不同元素列表的类,我希望在缓存中可用,因为大多数信息对于每个用户(全局)都是相同的。但是元素是一些用户特定的信息,我必须保存并保持快速访问(会话?)。结合全局和用户特定信息(缓存和会话)
我正在考虑与缓存和会话的某种组合,但我认为这是不可能的?这些信息被用于许多不同的地方,这就是为什么我想尽可能保持信息尽可能接近的原因。 有没有人对这个问题有很好的解决方案?
为了使Web应用程序更快,我想实现缓存。有一个包含不同元素列表的类,我希望在缓存中可用,因为大多数信息对于每个用户(全局)都是相同的。但是元素是一些用户特定的信息,我必须保存并保持快速访问(会话?)。结合全局和用户特定信息(缓存和会话)
我正在考虑与缓存和会话的某种组合,但我认为这是不可能的?这些信息被用于许多不同的地方,这就是为什么我想尽可能保持信息尽可能接近的原因。 有没有人对这个问题有很好的解决方案?
虽然有一次使用它们的组合没有内置的方式,你可以写你的包装类,其获取来自这两个部分的全部信息,例如:
class Information
{
public string UserName { get { return this.GetFromSession("UserName"); } }
public string WebSiteName { get { return this.GetFromCache("WebSiteName"); } }
private string GetFromSession(string key)
{ /* get information from session */ }
private string GetFromCache(string key)
{ /* get information from cache */}
}
然后您就可以只是使用:
Information info = new Information();
Response.Write(info.UserName);
Response.Write(info.WebSiteName);
这是否对您有帮助?
感谢您的回答Tengiz!但是我会在更深层次上需要它。我有一个包含页面的列表,每个页面都包含多个(列表)元素,这些元素包含关于每个元素的几个信息。该元素的位置属性是唯一的用户特定的事情..但我不喜欢存储每个元素seperatly ..这不是必要的这种解决方案,当我仍然想有可能访问元素的位置element.position?在缓存的元素对象中访问会话对象的位置会很舒服。 – eXos 2011-03-16 12:28:51
无论如何,应该由某种包装类来解决。我只写了一个例子,但实现方式因案例而异。 – Tengiz 2011-03-16 12:40:29
我希望有一个可能性,以访问一个会议变量chached类,但不幸的是,这似乎是不可能的..我会像你展示Tengiz一样的东西,所以感谢您的帮助! – eXos 2011-03-17 06:58:33