问题描述
我写的的web程序,在Global.asax.cs文件中Global类中给HttpRuntime.Cache.Insert("JsonData",joo);插入了Json格式的数据,想在网页中把数据读取出来。if(HttpRuntime.Cache!=null){stringjo=HttpRuntime.Cache.Get("JsonData")asstring;Response.Write(jo);}读取的jo是空的,请问怎么回事?我应该怎么取到cache中数据呢。新手,十分感谢!
解决方案
解决方案二:
为啥不考虑直接static数据呢?Cache有可能会过期或释放,而且还有上下文限制
解决方案三:
引用1楼starfd的回复:
为啥不考虑直接static数据呢?Cache有可能会过期或释放,而且还有上下文限制
我是定时去数据源更新数据,放到cache缓存中,网页访问时不再去数据源取数据,减少时间。static数据我不太懂在Global类中Application_Start里每1分钟更新一次数据到cache中,但是我页面读取是空的
解决方案四:
那你这个也不需要在global里做这个事情啊,你可以在取数据的逻辑哪里封装这个cache,做法就是varcache;//从cache中读取cacheif(cache==null){cache=xxx//从数据库读取//将结果插入缓存中,需要设置相对过期或者绝对过期时间}returncache;
解决方案五:
用application这个试试,cache可能会丢失。
解决方案六:
DimCacheEnumAsIDictionaryEnumerator=HttpRuntime.Cache.GetEnumerator()DimflagAsInteger=0DimlocateAsInteger=0WhileCacheEnum.MoveNext()DimcacheItemAsStringcacheItem=CacheEnum.Current.Value.ToString()EndWhile虽然不知道用cache合理不合理,要用的话你搜搜IDictionaryEnumerator和HttpRuntime.Cache.GetEnumerator()吧