知识大全 ASP.NET缓存简述

Posted

篇首语:宁可身骨苦,不叫面皮羞。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET缓存简述相关的知识,希望对你有一定的参考价值。

ASP.NET缓存简述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  以前对缓存的认识比较零碎 最近做的行业新闻项目可能会大量应用的缓存技术 故将缓存技术再重新整理了下 使我自己对缓存又有了一个全新的认识 同时也给大家分享下

   页输出缓存

   全部输出缓存

  页输出缓存在内存中存储处理后的 ASP NET 页的内容 这一机制允许 ASP NET 向客户端发送页响应 而不必再次经过页处理生命周期 页输出缓存对于那些不经常更改 但需要大量处理才能创建的页特别有用

  要实现页输出缓存也很简单 如你要对default aspx页面实施页面缓存 那么你只需在defualt aspx页面中添加使用OutputCache指令 OutputCache有多个属性 其中两个必须的属性是Duration和VaryByParam Duration设置了缓存的过期时间 单位为秒 VaryByParam允许我们缓存页面的不同版本 一般情况下 VaryByParam设置为none 具体示例如下

  <%@ OutputCache Duration= VaryByParam= none %>

  这个设置就是说明 缓存时间是 秒 并且不分版本 其实加上了这句就已经完成了页输出缓存设置了 为了看下效果 我在default aspx cs文件Page_Load方法中添加了Response Write(DateTime Now ToString( yyyy MM dd HH:mm:ss ))一句 浏览页面后不断刷新 发现时间并不会改变 当缓存过期时间( 秒)到点了 刷新才会引起页面的变化

  上面已经实现了的页输出缓存 但是有一个问题 现在是一个网页 设置缓存可以放在default aspx中 但是如果一个网站有成千上万个网页 并且每个页面都需要设置缓存机制 一旦缓存时间需要修改时 就会涉及到要修改千万个网页 这样做肯定是很麻烦的事情 所以需要将网页的缓存设置放在一个公共地方 一旦需要修改的时候 调整起来比较方便 刚好的nfig文件中可以设置页面缓存 如下

  <system web>

  <caching>

  <outputCacheSettings>

  <outputCacheProfiles>

  <add name= pageCache duration= varyByParam= none enabled = true />

  </outputCacheProfiles>

  </outputCacheSettings>

  </caching>

  </system web>

  上面的意思为过期时间为 秒 不根据页面参数缓存

  页面中调用此设置如下

  <%@ OutputCache CacheProfile= pageCache %>

  这样 就完成了页输出缓存才配置

   片段缓存

  有些网页 可能大部分都不需要经常变更 比如页面头部和页脚 但是正文部分可能经常变动 像这些部分不经常变动而部分又经常变动的网页 可以采取片段缓存的办法 即 将不怎么变动的部分做成一个单独的用户控件(ascx) 调用的时间将这个ascx单独设置缓存 就能达到一个网页中经常变动不缓存 而不经常变动的部分缓存的效果了

   缓存后替换

  这种方式与片段缓存恰好相反 是将整个页面先缓存 然后将经常变动的地方单独做成一个ascx 并且这个ascx不设置缓存 如登录慧远保银首页 给每个人显得的内容都是一样的 唯独不一样的 就是在某个地方显示了当前的用户名不一样 这种情况就可以采取 缓存后替换 的办法 先将整个网页缓存 当然缓存下来的用户名可能是上个用户的 但是采取缓存后替换的方法 将你自己的用户名替换上个用户名 就能得到很好的效果了

   应用程序缓存

  第一部分说到的都是关于网页的缓存 缓存还提供另外一种缓存方式 即应用程序缓存 比如某个数据列表的计算需要花费很长时间 而且很浪费服务器资源 并且此列表不是需要经常更新的 那么我们可以先将此数据列表事先key/value的方式缓存在内存中 当有需要此数据时 可以以key的方式去寻找此数据列表

  如有一个DataSet对象ds 将它存入缓存的办法是 Cache[ ds ]=ds 当程序需要调用这个ds对象的时候 直接用Cache[ ds ]即可查询到数据值

  除了Cache[ ds ]=ds将数据缓存外 还提供了insert和add这两个方法将数据项添加到缓存 因为这两个函数功能大致相同 唯一区别就是 insert函数有替换功能 所以仅以insert作为示例简单说明下

  Insert方法有四个重载函数  

  对上面四个重载函数我作简要说明

     与Cache[ ds ]=ds类似 就是将数据以key/value的形式添加到缓存

     第二个重载函数多了一个CacheDependency类型的参数 这个参数的意义是指定添加数据的依赖项 比如 某个数据列表是从一个xml加载进来的 现在将此数据的依赖项设置为此xml文件 当xml文件修改后 此数据再缓存中自动删除 下次调用时重新加入缓存 这样可以保证缓存中的数据足够新

     第三个重载函数不仅指明了依赖项 还指明了缓存的有效时间 即在依赖项一直没有修改的情况下 过了有效时间 缓存数据依旧自动删除

cha138/Article/program/net/201311/12185

相关参考

知识大全 ASP.NET缓存介绍

ASP.NET缓存介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    ASPNET缓存   

知识大全 ASP.NET缓存分析

ASP.NET缓存分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  说到ASPNET缓存那就是

知识大全 ASP.NET 输出缓存的移除

ASP.NET输出缓存的移除  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNET输出缓存

知识大全 ASP.NET2.0缓存技术

新手基础教程:ASP.NET2.0缓存技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASP

知识大全 ASP.NET缓存:方法分析和实践示例

ASP.NET缓存:方法分析和实践示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  尽早缓存经

知识大全 ASP.NET缓存方法分析和实践示例

ASP.NET缓存方法分析和实践示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  尽早缓存经常

知识大全 在asp.net 中实现维护数据缓存

在项目中我们经常会用到数据缓存也会在项目处理对缓存的维护但是有些时间我们需要人为的来维护这些缓存用下面的代码来实现   将缓存信息绑定到DataGrid上   privatevoidbindCache

知识大全 ASP.NET缓存初探 使用得当是关键

ASP.NET缓存初探使用得当是关键  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  文中对ASP

知识大全 为 ASP.NET 创建缓存配置对象

为ASP.NET创建缓存配置对象  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  简介    如果

知识大全 ASP.NET缓存概念及其应用浅析

ASP.NET缓存概念及其应用浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNET缓