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 – 如何使用ajax调用跨域web api?
- asp.net确保javascript只加载一次
- asp.net – IIS Express(WebMatrix)打开外部连接
- asp.net – 按钮属性: – commandName和CommandArguments
- 单元测试 – 如何在ASP MVC 5(Microsoft.AspNet.Identity)中
- asp.net类序列化生成xml文件实例详解
- 端到ASP.NET MVC的推荐方法
- asp.net-mvc-4 – 如何在Kendo UI Grid中扩展页面加载时的所
- asp.net-mvc-3 – 如何将复选框绑定到mvc3中的viewmodel
- Plone和Asp.Net集成
- asp.net – 将ViewState移出页面?
- asp.net-mvc – 如何在ASP.NET MVC4中使用具有唯
- asp.net-mvc – ControllerActionInvoker
- asp.net-mvc-3 – outputcache mvc3只注销了用户
- asp.net – Umbraco CMS(.NET):加载xslt /用户控
- asp.net – 查询字符串参数使我的应用程序面临风
- asp.net – 哪里是.ASPXAUTH cookie
- asp.net-mvc – 根据浏览器接受语言自动设置uiCu
- 认识ASP.NET配置文件Web.config
- asp.net-mvc – 为什么ASP.NET MVC使用会话状态?