当用户访问页面时,整个页面将会被服务器保存在内存中,这样就对页面进行了缓存。当用户再次访问该页,页面不会再次执行数据操作,页面首先会检查服务器中是否存在缓存,如果缓存存在,则直接从缓存中获取页面信息,如果页面不存在,则创建缓存。

页面输出缓存适用于那些数据量较多,而不会进行过多的事件操作的页面,如果一个页面需要执行大量的事件更新,以及数据更新,则并不能使用页面输出缓存。使用@OutputCatch指令能够声明页面输出缓存,示例代码如下所示。

<%@ OutputCache Duration="120" VaryByParam="none" %>

上述代码使用@OutputCatch指令声明了页面缓存,该页面将被缓存120秒。@OutputCatch指令包括10个属性,通过这些属性能够分别为页面的不同情况进行缓存设置,常用的属性如下所示:

q CacheProfile:获取或设置OutputCacheProfile名称。

q Duration:获取或设置缓存项需要保留在缓存中的时间。

q VaryByHeader:获取或设置用于改变缓存项的一组都好分隔的HTTP标头名称。

q Location:获取或设置一个值,该值确定缓存项的位置,包括Any、Clint、Downstream、None、Server和ServerAndClient。默认值为Any。

q VaryByControl:获取或设置一簇分好分隔的控件标识符,这些标识符包含在当前页或用户控件内,用于改变当前的缓存项。

q NoStore:获取或设置一个值,该值确定是否设置了“Http Cache-Control:no-store”指令。

q VaryByCustom:获取输出缓存用来改变缓存项的自定义字符串列表。

q Enabled:获取或设置一个值,该值指示是否对当前内容启用了输出缓存。

q VaryByParam:获取查询字符串或窗体POST参数的列表。

通过设置相应的属性,可以为页面设置相应的缓存,当需要为Default.aspx设置缓存项时,可以使用VaryByParam属性进行设置,示例代码如下所示。

<%@ OutputCache Duration="120" VaryByParam="none" %>

上述代码使用了Duration属性和VarByParam属性设置了当前页的缓存属性。为一个页面进行整体的缓存设置往往是没有必要的,常常还会造成困扰,例如Default.aspx?id=1和Default.aspx?id=100在缓存时可能呈现的页面是相同的,这往往不是开发人员所希望的。通过配置VarByParam属性能够指定缓存参数,示例代码如下所示。

<%@ OutputCache Duration="120" VaryByParam="id" %>

上述代码则通过参数id进行缓存,当id项不同时,ASP.NET所进行的页面缓存也不尽相同。这样保证了Default.aspx?id=1和Default.aspx?id=100在缓存时所显示的页面并不一致。VarByHeader和VarByCustom主要用于根据访问页面的客户端对页面的外观或内容进行自定义。在ASP.NET中,一个页面可能需要为PC用户和MOBILE用户呈现输出,因此可以通过客户端的版本不同来缓存不同的数据,示例代码如下所示。

<%@ OutputCache Duration="120" VaryByParam="none" VaryByCustom="browser" %>

上述代码则为每个浏览器单独设置了缓存条目。

转载于:https://www.cnblogs.com/tiancai/archive/2013/03/20/2970592.html

OutputCache祥解相关推荐

  1. Linux如何关机与关机命令祥解

    Linux关机命令祥解 1.直接关电源 2.init 0 3.telinit 0 4.shutdown -h now 5.halt 6.poweroff 1.shutdown shutdown命令安全 ...

  2. [浪子学编程][MS Enterprise Library]ObjectBuilder之创建策略祥解(一)

    ObjectBuilder之创建策略祥解(一)                                                                              ...

  3. java邮件附件名称乱码_Javamail 中附件中文名字乱码祥解 (转)

    Javamail 中附件中文名字乱码祥解 (转)[@more@]现在研究JavaMail的人越来越多,现在我就谈谈在javamail中大家都会遇到的附件中文问题,由于sun的java的中文问题,导致当 ...

  4. nginx配置文件祥解

    nginx配置文件祥解 nginx配置说明---------------------------- #运行用户 user  www www; #启动进程 worker_processes  2; #一 ...

  5. [预告]将要推出编程方式事务管理祥解!

            [预告]将要推出编程方式事务管理祥解! 以前一直都用声明式事务管理:EJB,Spring的.这一次要用Jbpm,需要使用编程方式的事务管理,立刻乱了阵脚.事务管理得那个烂呀!真是惨不忍 ...

  6. HTML使川锚标签,第1章HTML的基本标签祥解.ppt

    第1章HTML的基本标签祥解.ppt 页面链接标签 电子邮件链接 要链接电子邮件,可在链接标签中插入"mailto:邮箱地址" 站长信箱 演示示例5:演示电子邮件链接 电子邮件链接 ...

  7. 计算机ppt用快捷键,计算机_电脑操作快捷键大全祥解.ppt

    计算机_电脑操作快捷键大全祥解.ppt 常用快捷键 2.用于编辑和移动文字及图形的快捷键 ◆删除文字和图形快捷键 作用Backspace 删除左侧的一个字符Ctrl+Backspace 删除左侧的一个 ...

  8. 计算机网络ospf流程图,计算机网络7-OSPF祥解.ppt

    计算机网络7-OSPF祥解.ppt 此处一次课 * * * 0.0.0.255不更改 更改某网络属于的area即可. * * 邻居和邻接关系 在邻居关系中,OSPF Hello报文中以下项内容必须相同 ...

  9. 转载批处理之FOR语句祥解

    批处理之FOR语句祥解 FOR这条命令基本上都被用来处理文本,但还有其他一些好用的功能! 看看他的基本格式(这里我引用的是批处理中的格式,直接在命令行只需要一个%号) FOR 参数 %%变量名 IN ...

最新文章

  1. The Distinguish of the share or static lib in MFC
  2. 数据结构笔记--栈的总结及java数组实现简单栈结构
  3. 索引体积_米家温湿度计体积虽小,耗电不小,如果经常离线,换颗电池吧
  4. SpringBoot和Elasticsearch集成
  5. python爬虫什么意思-Python爬虫是什么意思有啥用 python爬虫原理实例介绍
  6. [leetcode]190. 颠倒二进制位
  7. CSS代码实现背景透明文字不透明
  8. WIN2008R2 激活
  9. 爬取豆瓣网新书传递信息,关系型数据库的储存
  10. 【Ail规约】慎用 Object 类下的 clone 方法拷贝对象
  11. idea破解到2100年
  12. C# 16进制与2进制互转
  13. Progressive Domain Adaptation from Source Pre-trained Model
  14. OIO、NIO、AIO小结
  15. 20175212童皓桢 《Java程序设计》第六周学习总结
  16. 中国式审美真的太可怕了
  17. CDGA|数据治理中数据如何分类分级呢?
  18. 完美解决 w10 设置 个性化 wifi 无法打开的问题
  19. Linux命令--nc (测试服务器端口是否打开)
  20. 基于OpenVINO部署PaddlePadle-YOLOE模型—2.模型下载与转换

热门文章

  1. Servlet思维教程
  2. 一些主要的PHP开发框架和CMS系统平台
  3. Mac上的BG Renderer MAX(ae多线程渲染工具)
  4. 姓祝男孩名字简单大气
  5. python调用nastran_基于Python语言的NASTRAN模型向Abaqus模型转换程序
  6. word中快速消除两个汉字间的空格
  7. 我与马佳佳:她的避孕套和我的超级表格
  8. 软件测试工程师必会的Linux命令(上)
  9. php fastcgi进程启动,如何设置nginx的php fastcgi进程数
  10. (附源码)Springboot球鞋调货管理系统 毕业设计160942