Page.Cache,HttpContext.Cache,HttpRuntime.Cache,Hashtable有什么区别
Posted on 2008-11-29 11:31 chen eric 阅读(258) 评论(0) 编辑 收藏 举报Code
HttpContext.Cache,HttpRuntime.Cache,用法上没有区别,就是使用范围不同.
HttpContext.Cache是基于上下文,对同一个用户起做用,如果换了一个访问,那么这个CACHE就不起做用了.
HttpRuntime.Cache是全局的,对任务人都有做,只要有内容,任务用户都可以访问.
3WIND CODE
public class HttpRuntimeCache
{
public static string Instance()
{
string vc=(string)HttpRuntime.Cache["Test"];
if(vc==null)
{
HttpRuntime.Cache.Add("Test","test", null,System.DateTime.Now.AddDays(10),TimeSpan.Zero,
CacheItemPriority.Default,null);
}
return vc;
}
}
Page.Cache实际上是访问其它CACHE的接口.可以通过Page.Cache来访问HttpContext.Cache,HttpRuntime.Cache里面的东西.
还有另外一种保存Cache方式是,使用Hashtable等来保存,值的一说的是这种Cache也是全局 ,而且是不可过期的 ,我想这是与 HttpRuntime.Cache的一个区别吧.至于安全性能方面我还没有去验证.Hashtable保存方式比较特别,就是NEW的时候要使用同步关健字.
3WIND CODE
public class hashcache
{
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
public static void CacheParameters(string cacheKey, string cmdParms)
{
parmCache[cacheKey] = cmdParms;
}
public static string GetCachedParameters(string cacheKey)
{
return (string)parmCache[cacheKey];
}
}
HttpContext.Cache,HttpRuntime.Cache,用法上没有区别,就是使用范围不同.
HttpContext.Cache是基于上下文,对同一个用户起做用,如果换了一个访问,那么这个CACHE就不起做用了.
HttpRuntime.Cache是全局的,对任务人都有做,只要有内容,任务用户都可以访问.
3WIND CODE
public class HttpRuntimeCache
{
public static string Instance()
{
string vc=(string)HttpRuntime.Cache["Test"];
if(vc==null)
{
HttpRuntime.Cache.Add("Test","test", null,System.DateTime.Now.AddDays(10),TimeSpan.Zero,
CacheItemPriority.Default,null);
}
return vc;
}
}
Page.Cache实际上是访问其它CACHE的接口.可以通过Page.Cache来访问HttpContext.Cache,HttpRuntime.Cache里面的东西.
还有另外一种保存Cache方式是,使用Hashtable等来保存,值的一说的是这种Cache也是全局 ,而且是不可过期的 ,我想这是与 HttpRuntime.Cache的一个区别吧.至于安全性能方面我还没有去验证.Hashtable保存方式比较特别,就是NEW的时候要使用同步关健字.
3WIND CODE
public class hashcache
{
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
public static void CacheParameters(string cacheKey, string cmdParms)
{
parmCache[cacheKey] = cmdParms;
}
public static string GetCachedParameters(string cacheKey)
{
return (string)parmCache[cacheKey];
}
}