public static void AddHits()
{
// 是否存在
if (HttpRuntime.Cache[CacheName] == null) // 否
{
Add();
onRemove = new CacheItemRemovedCallback(ItemRemovedFromCache);
HttpRuntime.Cache.Insert(CacheName, Count, null, DateTime.Now.AddSeconds(20), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.High, onRemove);
}
else
{
Add();
HttpRuntime.Cache[CacheName] = Count;
}
}
private static void ItemRemovedFromCache(string key, object value, CacheItemRemovedReason reason)
·· AddHits()是点击量增加 Count 属性的点击量 如上但总是不会触发 ItemRemovedFromCache 方法,跪求解贴
(http://www.cnblogs.com/goooto/archive/2008/03/30/1130311.html,本来是想按这上面缓存+点击量但是发现这有
永远调用一个类的同一个实体缓存 才有可能起到作用!!!)
{
// 是否存在
if (HttpRuntime.Cache[CacheName] == null) // 否
{
Add();
onRemove = new CacheItemRemovedCallback(ItemRemovedFromCache);
HttpRuntime.Cache.Insert(CacheName, Count, null, DateTime.Now.AddSeconds(20), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.High, onRemove);
}
else
{
Add();
HttpRuntime.Cache[CacheName] = Count;
}
}
private static void ItemRemovedFromCache(string key, object value, CacheItemRemovedReason reason)
·· AddHits()是点击量增加 Count 属性的点击量 如上但总是不会触发 ItemRemovedFromCache 方法,跪求解贴
(http://www.cnblogs.com/goooto/archive/2008/03/30/1130311.html,本来是想按这上面缓存+点击量但是发现这有
永远调用一个类的同一个实体缓存 才有可能起到作用!!!)
解决方案 »
- 如何把查询出来的结果放到一张新表中? 在线等
- 这个问题不知道在那个版块发贴,一个TAB标签切换更换图片的操作
- 添加数据到文本最后一行,并且考虑效果,,
- 可能不属于.NET.但没发现有此类的题.一个简单的CSS小问题.
- 最后40分请问!!!!!
- 请教:页面继承的问题
- 虚拟主机 正在打开网页 http...." 而且持续时间很长?
- 能否把在浏览器生成的表格以及文字内容转化为word格式显示出来
- 如何知道点击的是treeview中的根节点还是子节点
- 请问在vs.net环境里调用css的语句怎么写?
- jquery ajax 在.net中的问题
- if (strNum.IndexOf("A", 0, StringComparison.CurrentCulture) != 0)
{
protected void Page_Load(object sender, EventArgs e)
{
MyCahe.AddHits("A", 1);
}
} public class MyCahe
{
public static void AddHits(string CacheName, int Count)
{
// 是否存在
if (HttpRuntime.Cache[CacheName] == null) // 否
{ CacheItemRemovedCallback onRemove = new CacheItemRemovedCallback(ItemRemovedFromCache);
HttpRuntime.Cache.Insert(CacheName, Count, null, DateTime.Now.AddSeconds(5), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.High, onRemove);
}
else
{ HttpRuntime.Cache[CacheName] = Count;
}
}
private static void ItemRemovedFromCache(string key, object value, CacheItemRemovedReason reason)
{
int i = 100;
}
HttpRuntime.Cache[CacheName]就不是null了,
ItemRemovedFromCache肯定执行不了.new CacheItemRemovedCallback(ItemRemovedFromCache); 放置在判断前 执行
添加新key还是?
private static void ItemRemovedFromCache(string key, object value, CacheItemRemovedReason reason)
{
HttpRuntime.Cache.Remove(key); //这里回这一句后再试. int i = 0;
}
于是这个缓存在20秒后过期,正常执行缓存结束事件,如ItemRemovedFromCache。
但第二次给缓存赋值后,实体类就会重新加载。于是便不会执行之前LZ的ItemRemovedFromCache。LZ其实的核心问题就是:
实体类重新加载后,如何继续使它执行ItemRemovedFromCache?按LZ的代码讲解: onRemove = new CacheItemRemovedCallback(ItemRemovedFromCache);
HttpRuntime.Cache.Insert(CacheName, Count, null, DateTime.Now.AddSeconds(20), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.High, onRemove); 第二次给缓存赋值后,缓存便不知道onRemove是什么东西(因为已经重新加载了,根本没有执行onRemove = new CacheItemRemovedCallback(ItemRemovedFromCache); ),那么自然无法执行缓存结束事件。
引起这个问题是,已经执行过remove事件了,结果cache还在,那刷新时还执行update的代码,
所以不会再有remove事件了.