则在引用时只需要在页面头部设置如下:
<%@ OutputCache CacheProfile="CacheProfile" %>
而不是全部写入页面
DiskCacheable
因为服务器内存是有限的,所以通过将DiskCacheable属性设置为true,则可以将缓存页面放入硬盘中,这样即使服务器崩溃重启,缓存依然存在.
缓存部分页面
缓存页面的一部分实现原理和缓存整个页面毫无二致,都是在页面头部加入OutputCache指令,唯一的不同是缓存部分页面是在用户控件中进行的。这部分就不在多说了。
使用HttpCachePolicy缓存页面
前面已经说了通过OutputCache指令在页面头部设置缓存选项,另一种替代方法是使用HttpCachePolicy类,这个类的实例是Response.Cache.如果使用HttpCachePolicy设置缓存,则需要在页面移除OutputCache指令。
比如:
<%@ OutputCache Duration="30" VaryByParam="state;city" %>
和下面代码是等价的:
Response.Cache.SetExpires(DateTime.Now.AddSeconds(30));
Response.Cache.VaryByParams["state"] = true;
Response.Cache.VaryByParams["city"] = true;
Response.Cache.VaryByParams["state"] = true;
Response.Cache.VaryByParams["city"] = true;
更多关于HttpCachePolicy,请查看MSDN
对象缓存
对象缓存是将继承与System.Object的对象缓存在服务器的内存中,通过Page类的Cache属性可以访问到Cache集合。Cache内可以放任何类型的对象,但是要小心使用Cache,因为Cache是占用服务器内存,如果使用不当,也许会拖累性能。
使用Cache的例子:
//save object into Cache
Cache["table"] = GridView1;
//get object from Cache
GridView gv = (GridView)Cache["table"];
Cache["table"] = GridView1;
//get object from Cache
GridView gv = (GridView)Cache["table"];
要注意的是,再提取缓存中的对象时,一定别忘了强制转换。
总结
文中对Asp.net的缓存机制进行了简述,asp.net中的缓存极大的简化了开发人员的使用。如果使用得当,程序性能会有客观的提升。