你在生成高性能网络应用程序时所遇到的一个问题就是需要避免重复。一个Cache对象允许在它们第一次被请求时在内存中缓存项,然后将被缓存的副本用于以后的请求。使用被缓存的副本允许你避免重建满足以前请求的信息,特别是那些每次创建时都需占有明示的服务器上的处理器时间的命令。
除缓存个别项,如缓存中的计算结果以外,Asp.net提供一个输出缓存可用于保存网页和用户控件。Cache对象和输出缓存是拥有相同的角色和属性,但它们是皆然不同的两种对象。
ASP.NET提供一个全特性的缓存引擎,用于保存和获取信息片段。Cache对象没有关于它所包含的的项的信息。Cache对象仅包含对于那些对象的引用以及提供它们的依赖项和设置过期策略。Cache还提供方法在相同网络应用程序的网页之间传递值。缓存方法实现自动的锁,所以,值在被多个页并发访问时是安全的。
那么Cache对象是如何工作的哪?
使用Cache对象的的过程是:
1. 页面请求的项被标识为已经在Cache对象中保存。
2. ASP.NET 检查 Cache 对象并用已缓存的版本来决定是否可用。
3. 如果缓存的版本不可用,ASP.NET 重新创建项,使用此项,然后将它保存在Cache对象以备后用。
我们如何使用Cache对象的键值对?
Cache对象使用键值对保存和获取对象。键是缓存键字符串,用于引用对象。值是被缓存的对象。在最简单的例子中,将项放到缓存中再获取它就像是将某项被放到字典中。
要想将项添加到Cache对象: Cache["mykey"] = myValue;
要想从Cache对象中获取项: myValue = Cache["mykey"];
代码示例如下:
DataTable dt = new DataTable();
…………………………………………
Cache["ObjDataTable"] = dt; 将一个DataTable缓存到Cache对象中。
DataTable dt = new DataTable();
dt = Cache["ObjDataTable"] as DataTable; 将被保存在缓存中DataTable从缓存中获取。
转自 网络自由人