A.从XML中取数据:
分析:
var node=dom.DocumentElement.SelectSingleNode("//pagesize");
xpath写法,如下表,详见w3c: http://www.w3school.com.cn/xpath/xpath_nodes.asp
,这里双斜杠意为:从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
Cache 缓存对象和 Application类似,都是全局的
区别的地方是,当内存紧张时,首先Cache可能会丢失 ,然后是session
提出一个问题,缓存依赖;
1.绝对超时
2.相对超时
3.文件依赖
4.数据库依赖:
两种模式:轮询,通知(必须是sql2005以上,启动数据库的通知服务)
=============
实战中:
缓存大数据量,一般是数据集或集合等。
缓存通常没有依赖,那么我们做一个功能,叫清理缓存(刷新缓存)
缓存1 OK
缓存2 OK
缓存3 OK
缓存4 OK
【清理】
其实质就是直接把Cache["XXXX"]中的内容覆盖一遍达到更新的作用
B.应用程序缓存的应用:Cache函数
Cache["cacheName"] = value; //最简单的设置缓存的方法,这样子设置的是永久缓存
以上这种方法如果碰到需要设置缓存的有效期,依赖项的时候就无能为了,解决方法如下:
1.使用Add()方法
Cache.Add("test1","使用Add缓存测试",null,DateTime.Now.AddSeconds(7),
TimeSpan.Zero,CacheItemPriority.High,null);
使用Add()方法必须要将它的7个参数填写完整,所以灵活性不够
2.使用Insert()方法
a.只需要键和值2个参数就可以添加缓存
Cache.Insert("test2", "使用Insert缓存测试");
b.添加依赖项的缓存
Cache.Insert("test3", "使用依赖项的缓存",
new System.Web.Caching.CacheDependency(null,dependencies))
//这里的dependencies是缓存的依赖项,当更改任何依赖项时,该随想无效并从缓存中移除
c.设置有效期策略的缓存
Cache.Insert("test4","带有效期的缓存",DateTime.Now.AddMinutes(1d),
System.Web.Caching.Cache.NoSlidingExpiration);
d.添加优先级的缓存
Cache.Insert("test5", "带优先级的缓存", null,
System.Web.Caching.Cache.NoAbsoluteExpiration,
System.Web.Caching.Cache.NoAbsoluteExpiration,
System.Web.Caching.CacheItemPriority.High, null);
CacheDependency说明:
C.检索缓存注意事项:
由于缓存易失,所以在从缓存中检索应用程序的数据缓存对象时,需要先判断是否为null,然后再检索。
D.移除缓存
1.自动移除:
当出现缓存已满、过期、依赖项更改等情况时,缓存项会自动移除
2.显式移除:
Cache.Remove("test1");