asp.net 使用驻留在页面中的Cache缓存常用可定时更新的数据
就是希望让Web应用程序从一开始运行到结束都一直存在,有人就说为什么不用Application呢?其实Cache是可以一段时间内自动更新数据的,而Application就无法做成这样的,另外Application在Web这种高并发的系统中一定要考虑线程安全的问题,Application本身就不是线程安全的,而Cache就是线程安全。所以一般我都会在很多对象中我只从Web开始运行的时候从数据库或文件里获取一次数据,在不同的页面中,都是使用Cache的,而且Cache中的数据可能弄成自动更新的,所以一般情况不需要考虑数据更新的问题,另外Cache也是也应用程序关联的,全部可能驻留在该Web应用程序中的任何页面。 当然首先我们应该熟悉一下System.Web.Caching.Cache这个类,我这里也就只说说其中使用比较多的几个方法和属性,如果需要更详细的介绍请查阅MSDN。 首先介绍它的Add()方法,将指定的对象添加到Cache对象集合中。 Insert()方法将覆盖有相同Key的Cache顶。 Remove()从应用程序的Cache对象中移除指定项。 Count属性,获取存储在缓存中对象数。 这里我主要要说的是Add()方法,因为我们如果想要长期存在Cache并且在一段时间内自动替换Cache,就必须非常了解它。我们看看MSDN中对该方法的详细介绍吧。呵。 C# public Object Add( 参数
返回值类型:System.Object 备注如果 Cache 中已保存了具有相同 key 参数的项,则对此方法的调用将失败。若要使用相同的 key 参数覆盖现有的 Cache 项,请使用 Insert 方法。 无法同时设置 absoluteExpiration 和 slidingExpiration 参数。如果要让缓存项在特定时间到期,可将 absoluteExpiration 参数设置为特定时间,并将 slidingExpiration 参数设置为 NoSlidingExpiration。 如果要让缓存项在最后一次访问该项后的某段时间之后到期,可将 slidingExpiration 参数设置为到期间隔,并将 absoluteExpiration 参数设置为 NoAbsoluteExpiration。 此段转载自MSDN 具体的怎样添加这种缓存了,一般情况我会在母版页中Init事件或Load事件中添加缓存,因为这样可以保证引用程序从一开始执行就可以将需要频繁使用的对象缓存起来了。 protected void Page_Load(object sender,EventArgs e) public void OnMoveCacheBack(string key,object value,System.Web.Caching.CacheItemRemovedReason reason) 参数的具体使用上一定要注意三点, 第一就是缓存的依赖项一定要指定为null。 第二固定到期缓存时间不能和可到延时缓存时间同时指定时间,实现我说的定期更换数据的,当然就要使用固定到期缓存时间了。 第三就是该缓存的优先级了,这个也比较关键,一定要指定为System.Web.Caching.CacheItemPriority.NotRemovable枚举值,这样才不会被自动收回,但是一定要注意该缓存的大小。 (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Web部署项目的更好替代品
- asp.net – 使用JavaScript重新排列的ListBox元素导致回发时
- asp.net – Razor base type / Templated Razor使用“using
- Asp.net MVC实现生成Excel并下载功能
- ASP.NET MVC编辑器模板和Html.EditorFor(…) – 如何消除类
- asp.net – ASP MVC – 默认的HTTP标头有任何常量吗?
- 如何在asp.net c#中计算网站访问者数量
- ASP.NET VNext类库System.Runtime.Serialization
- asp.net – Orchard CMS Media中的文件大小上传限制
- asp.net – 为什么当试图保存更改时,GridView行“null”的D
- iis-7.5 – 使用虚拟目录/应用程序在IIS中托管AS
- asp.net – 我应该在.gitingore文件中包含.vs文件
- asp.net – 如何使用ajax调用跨域web api?
- asp.net中让Repeater和GridView支持DataPager分页
- asp.net-mvc-4 – 在asp.net mvc 4模型中更改验证
- asp.net-mvc – 在Controller操作方法中重用代码
- asp.net – 我应该使用WebMatrix构建一个真实世界
- Phonegap上的ASP.NET窗体身份验证问题(Android)
- asp.net – 如何添加.aspx页面到现有的MVC 4项目
- asp.net – 如何序列化LINQ-to-SQL惰性列表