ASP.NET 2.0的页面缓存功能介绍
页面部分缓存是指输出缓存页面的某些部分,而不是缓存整个页面内容。实现页面部分缓存有两种机制:一种是将页面中需要缓存的部分置于用户控件(.ascx文件)中,并且为用户控件设置缓存功能(包含用户控件的ASP.NET页面可设置也可不设置缓存)。这就是通常所说的“控件缓存”。设置控件缓存的实质是对用户控件进行缓存配置。主要包括以下3种方法:一是使用@ OutputCache指令以声明方式为用户控件设置缓存功能,二是在代码隐藏文件中使用PartialCachingAttribute类设置用户控件缓存;三是使用ControlCachePolicy类以编程方式指定用户控件缓存设置。另外,还有一种称为“缓存后替换”的方法。该方法与控件缓存正好相反,将页面中的某一部分设置为不缓存,因此,尽管缓存了整个页面,但是当再次请求该页时,将重新处理那些没有设置为缓存的内容。
使用@ OutputCache指令
控件缓存与页面输出缓存的@ OutputCache指令既有相似之处,又有不同的方面。二者的共同点在于它们的设置方法基本相同,都是文件顶部设置包含属性的@ OutputCache指令字符串。不同点包括以下两个方面:一是控件缓存的@ OutputCache指令设置在用户控件文件中,而页面输出缓存的@ OutputCache设置在普通ASP.NET文件中。二是控件缓存的@ OutputCache指令只能设置6个属性,Duration、Shared、SqlDependency、VaryByControl、VaryByCustom和VaryByParam。而在页面输出缓存的@ OutputCache指令字符串中设置的属性多达10个。以上是设置控件缓存时需要注意的问题。下面列举了一些利用@ OutputCache指令设置控件缓存的示例,其中重点说明了VaryByParam和VaryByControl等属性应用。
用户控件中的@ OutputCache指令设置源代码
<%@ OutputCache Duration="120" VaryByParam="CategoryID;SelectedID"%>
以上代码设置用户控件缓存有效期时间是120秒,并且允许使用CategoryID和SelectedID参数来改变缓存。通过VaryByParam属性设置,在服务器缓存中可能存储多个用户控件的实例。例如,对于一个包含用户控件的页面,可能存在如下的URL链接。
包含用户控件的页面的URL链接
http://localhost/mypage.aspx?categoryid=fooselectedid=0
http://localhost/mypage.aspx?categoryid=fooselectedid=1
当请求如上URL地址的页面时,由于控件中@ OutputCache指令的设置,尤其是属性VaryByParam的设置,那么在服务器缓存中就会存储两个版本的用户控件缓存实例。
控件缓存设置除了支持以上所述VaryByParam属性外,还支持VaryByControl属性。VaryByParam属性基于使用POST或者GET方式发送的名称/值对来改变缓存,而VaryByControl属性通过用户控件文件中包含的服务器控件来改变缓存。下面是VaryByControl属性的应用示例代码。
用户控件中的@ OutputCache指令设置源代码
<%@ OutputCache Duration="120" VaryByParam="none" VaryByControl="Category" %>
以上代码设置缓存有效期是120秒,并且页面不随任何GET或POST参数改变(即使不使用VaryByParam属性,但是仍然需要在@ OutputControl指令中显式声明该属性)。如果用户控件中包含ID属性为“Category”的服务器控件(例如下拉框控件),那么缓存将根据该控件的变化来存储用户控件数据。
转载于:https://www.cnblogs.com/zcy_soft/archive/2010/10/03/1841625.html
ASP.NET 2.0的页面缓存功能介绍相关推荐
- 通过 ASP.NET 2.0 的数据增强功能来提高负载和减少代码 --作者:Dino Esposito
[导读]在ASP.NET 2.0中引入了数据源组件,相对于1.x版本,在开发效率和运行效率上都得到了极大的提升,而本文将详细介绍新的数据控件,包括编程接口.用法和实现. 绝大多数Web应用程序都会使用 ...
- asp.net 2.0 + sqlserver2005 数据依赖缓存
Asp.net 2.0 提供了一个新的数据缓存功能,就是利用sql server2005 的异步通知功能来实现缓存 1.首先在sqlserver2005 中创建一个test的数据库.添加一个 empl ...
- ASP.NET 2.0 中的 Theme 功能
ASP.net 2.0 中新增加了 Theme 的功能,它的出现能让网站实现换肤更加容易. Theme 的实现包括:CSS.Skin.MasterPage. CSS 是用于控制所有 Html 标记的外 ...
- Mysql8.0之后没有缓存功能
尽管MySQL Query Cache旨在提高性能,但它存在严重的可伸缩性问题,并且很容易成为严重的瓶颈.自MySQL 5.6(2013)以来,默认情况下已禁用查询缓存,因为众所周知,它不能与多核计算 ...
- 航空订票系统--页面及功能介绍
前面经过数据逻辑层的分析,本文将从页面的效果以及功能实现代码角度讲述,因为时间以及能力问题,有些功能没有来得及实现,部分页面用模拟数据代替...管理员后台主要使用Ext js框架,前台主要为aspx页 ...
- AndroidStudio3.0 下载使用新功能介绍
谷歌2017发布会更新了挺多内容的,而且也发布了AndroidStudio3.0预览版,一些功能先睹为快.(英语一般,有些翻译不太好) 下载地址 https://developer.android.g ...
- 网站安全狗”响应内容保护“网页错误返回页面优化功能介绍
网站安全狗最新版本(主程序版本号:3.2.08157)在"资源保护"模块多了一个功能叫做:响应内容保护.如下图所示: <ignore_js_op> 该模块的主要功能是, ...
- 微信收款接口_企业微信:3.0.26版本新功能介绍
一.客户联系功能增强 对外收款 员工可以在聊天中直接向微信用户收款了,收款时还可要求顾客填写联系信息方便邮寄.所收款项进入企业的微信支付商户号由企业统一管理,企业还可查看每个员工的收款业绩明细. 其他 ...
- ASP.NET 2.0收集
更多滚动 8 ASP.NET2.0连接SQL Server数据库详解 轩辕南宫| 天极开发|2006-07-10 08:00 本文将详细介绍如何使用Connection对象连接数据库.对于不同的.NE ...
最新文章
- ironic驱动-IMPITool
- 【Android 异步操作】AsyncTask 异步任务 ( FutureTask 模拟 AsyncTask 执行过程 | AsyncTask 执行过程回顾 | FutureTask 分析 )
- Python基础知识-优雅的with as语句
- QT的QRadioButton类的使用
- 例5-17和例5-18
- 百度推出 MIP Baidu Path链接
- cmake编译opencv3.0
- 看完这篇,终于知道自己会不会 C# 泛型了!
- mongodb的基本使用_万金油_新浪博客
- 烽火fr2600怎么web登录_烽火配置教程
- Convert UOM values
- 图片情感研究现状与思考
- 粉丝看了教程成功发文章了,恭喜一下,并说下近期计划
- python模拟阴阳师抽卡
- python回调廖雪蜂_廖雪峰Python总结4
- 杰里之主动降噪与物理降噪的区别【篇】
- pandas中如何提取DataFrame的某些列
- 2022全球九大生态公链排行榜
- 佳肴 (Standard IO)
- 残差结构Residual、BN(Batch Normalization)