from:http://www.cnblogs.com/thomasnet/archive/2006/11/26/573104.html
Asp.net支持三种类型的cache

想写一个技术快速概述,可能写得太多了。技术概略的目的是以最快最简单的方式描述出技术要点,也是我希望的最有效率的知识传播方式。

1.  页面/控件cache

2.  应用程序级cache

3.  浏览器客户端cache

从实现方式来看,页面/控件cache和应用程序级cache都是存放在服务器内存里面的,随着内存的紧张程度,这些内容有可能在失效之前被提前删除。(cache的特性决定这些内容是可以放心得删除掉的)。浏览器客户端的cache是存放在客户端浏览器的cache里面 ,比如IE的临时文件夹就是起的cache的作用。每次用户请求一个页面的时候,浏览器会先从cache里面去查找一下有没有符合要求的还没有过期的cache内容,如果有的话就从cache里面直接读取跳过网络传输。

下面演示一下在Asp.net里面具体的写法:

1.       页面/控件cache可以申明在aspx,ascx文件里面,也可以在code behind里面作出申明。

<%@ OutputCache Duration="#ofseconds"

Location="Any | Client | Downstream | Server | None |

ServerAndClient "

Shared="True | False"

VaryByControl="controlname"

VaryByCustom="browser | customstring"

VaryByHeader="headers"

VaryByParam="parametername"

CacheProfile="cache profile name | ''"

NoStore="true | false"

SqlDependency="database/table name pair | CommandNotification"

%>

主要的参数是:

Duration: cache有效的时间,单位秒

Shared:只对控件有效,在控件可以同时应用与多个页面的时候,多个页面是否可以共享这一个cache而不用每个页面维护自己对这个控件的cache。

VaryByControl:cache随控件的ID变化

VaryByCustom:cache随用户自定义的一个变量来变化,该变量是在这里指定,然后应该在Global.ascx里面实现:

public override string GetVaryByCustomString (

HttpContext context,

string custom

)

该声明的custom参数就是在OutPutcache里面申明的变量。通过在这个函数里面对不同的custom参数返回不同的字符串值来表示不同的cache内容。

VaryByHeader, VaryByParam,CacheProfile也是设置不同的cache版本的。

NoStore表示不允许把cache的内容写到内存以外其它的存储设备上,这是对安全性比较高的内容的需要。

SqlDependency是和数据库相关的。

2.       应用程序级cache

只可以在code behind里面获得,特点是可以实现自己需要的任何cache逻辑。

可以通过Page.Cache获得,类的名字是System.Web.Caching.Cache

3.       浏览器客户端cache

只可以在codebehind里面获得,可以通过Response.Cache来指定,这是一个HttpCachePolicy对象。

另外: 可以指定一个TimeSpan作为cache的时间,不用每次来折算到秒。

public TimeSpan(long ticks);

public TimeSpan(int hours, int minutes, int seconds);

public TimeSpan(int days, int hours, int minutes, int seconds);

public TimeSpan(int days, int hours, int minutes, int seconds, int milliseconds);

如果要cache保留一个小时1分1秒,可以直接

new TimeSpan(1,1,1)

而不用先计算

1小时1分1秒=3600+60+1=3661秒,然后在传入3661作为有效期。

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 572064792 | Nodejs:329118122 做人要厚道,转载请注明出处!
本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sunshine-anycall/archive/2009/08/10/1542795.html,如需转载请自行联系原作者

Asp.net支持三种类型的cache[转]相关推荐

  1. linux支持三种类型的硬件,linux

    纪晓岚曾经说:"世间的道理与事情,都在古人的书中说尽,现在如再著述,仍然超不过古人的范围,又何必再多著述."于是他一生之中,从不著书,只是编书--整理前人的典籍,将中国文化作系统的 ...

  2. java集合框架支持三种类型,Java集合框架(一)

    集合类存放于java.util包中,集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference) 集合类型主要有3种:set(集).lis ...

  3. GoAccess 支持三种类型的存储方式。请根据你的需要和系统环境进行选择

    默认哈希表 内存哈希表可以提供较好的性能,缺点是数据集的大小受限于物理内存的大小.GoAccess 默认使用内存哈希表.如果你的内存可以装下你的数据集,那么这种模式的表现非常棒.此模式具有非常好的内存 ...

  4. html5中标签分为,HTML标签的三种类型

    HTML标签的类型分为三种:行内元素,行内块元素,块级元素 而标签的属性是可以转换的 display:inline: 转换为行内元素 display:linline-block 转换为行内块元素 di ...

  5. java中有scoreframe类型嘛_java构造函数的三种类型总结

    我们说构造函数能处理参数的问题,但其实也要分三种情况进行讨论.目前有三种类型:无参.有参和默认.根据不同的参数情况,需要我们分别进行构造函数的讨论.这里重点是无参构造函数的初始化也要分两种方法进行分析 ...

  6. mysql dbms是什么_DBMS体系结构的三种类型分别是什么

    DBMS体系结构的三种类型分别是什么 发布时间:2020-12-05 13:27:28 来源:亿速云 阅读:129 作者:小新 这篇文章主要介绍了 DBMS体系结构的三种类型分别是什么,具有一定借鉴价 ...

  7. ios 开发者证书付费三种类型区别

    ios 开发者证书付费三种类型区别 苹果开发者账号分为 个人(individual),公司(company),企业(enterprise)三种类型. 1.个人开发者账号: (1)费用:99美元每年. ...

  8. Spark支持三种分布式部署方式

    目前Apache Spark支持三种分布式部署方式,分别是standalone.spark on mesos和 spark on YARN,其中,第一种类似于MapReduce 1.0所采用的模式,内 ...

  9. 云存储是什么?云存储的常见三种类型

    云存储是一种云计算模型,可通过云计算提供商(将数据存储作为服务进行管理和运营)在 Internet 上存储数据.该模型按需适时提供容量和成本,无需您自行购买和管理数据存储基础设施. 云存储是什么 云存 ...

最新文章

  1. python中矩阵拼接_numpy实现合并多维矩阵、list的扩展方法
  2. 计算机实现减法学习心得
  3. 需要注意变量作用域的使用
  4. Object.defineProperty()方法的用法详解
  5. hdu 2191 悼念512汶川大地震遇难同胞 【多重背包】(模板题)
  6. 文件系统模拟程序python_如何使用sh实现Python虚拟文件系统
  7. android 编译 sdl,SDL编译 - Android本地视频播放器开发_Linux编程_Linux公社-Linux系统门户网站...
  8. linux 防火墙 qt udp,使用Qt实现简单的udp/ip通信
  9. 【邮政编码识别】基于matlab灰度二值化邮政编码识别【含Matlab源码 788期】
  10. vector初始化与清空
  11. 机房服务器维修合同,机房维护合同模板.doc
  12. 全票通过!数据集成平台 SeaTunnel 成功进入 Apache 孵化器!
  13. 使用腾讯云文字识别提取图片中的文字内容
  14. Redis Cluster集群搭建
  15. 腾讯云网站备案咨询:网站信息类问题汇总解答
  16. 拼图c语言程序,C语言实现拼图小游戏
  17. Mac的谷歌浏览器安装Vue.js.devtools插件
  18. 深度了解自监督学习,就看这篇解读 !何恺明新作MAE:通向CV大模型
  19. UPS BP650CH实现nas自动关机
  20. 记安装win10和deepin双系统的经过(附一些常见问题和解决方案)

热门文章

  1. Oracle体系结构之密码文件管理
  2. 使用expect 打通到其他服务器无密码访问
  3. css编写要注意什么 及一些公用的样式和外部引用 转码
  4. Javascript 的addEventListener()及attachEvent()区别分析
  5. windows Server 2003   IIS启用父路径
  6. 超高损人技巧~~不可不看
  7. 合理配置MySQL缓存 提高缓存命中率
  8. kubernetes 1.8 高可用安装(一)
  9. 东芝收购协议达成 富士通正式退出硬盘市场
  10. TypeScript 初识