常用开发框架 — 流行ASP.NET框架ORM持久化框架 Web开发框架
常用开发框架 — 流行J2EE框架下载ORM持久化框架 Web布局框架 AJAX框架 JSP标签库 Web开发框架
Web开发实例下载 — ASP.NET应用Doc文档管理系统 电子商务系统 Blog系统 Forum Portal CMS
Web开发实例下载 — J2EE典型应用WorkFlow工作流 DocPortal门户 电子商务 博客系统 论坛系统 Portal CMS

搜索
Google
 
最新文章
如何学J2EE - J2EE学习过程总结
 
Java 开发人员的 Dojo 概念
 
IBM Ajax 资源中心
 
Visual Studio 2008 环境下的C# 代码示例下载
 
Silverlight SDK 开发包示例下载
 
职业规划之职业发展的瓶颈
 
WCF 聊天室应用示例和事件发布机制 
 
WCF 示例代码下载
 
Windows Communication Foundation MSDN 论坛资源下载
 
LINQ SQL N-层智能客户端示例代码下载
 
WCF 开发起始工具包下载
 
Silverlight Web 服务示例代码下载
 
WPF的RadioButtonList控件下载
 
WPF Tetris 小游戏
 
WPF做公司年会上用的抽奖程序
 
 
ASP.NET Cache——ASP.NET缓存技术 - NET开发Web、NET开发教程、NET开发技术

ASP.NET Cache——ASP.NET缓存技术


本文主要介绍ASP.NET的缓存技术。介绍其使用方法,以及客户端缓存存在的问题。

2. ASP.NET CACHE

缓存是把应用程序中需要频繁、快速访问的数据保存在内存中的编程技术。ASP.NET提供三种主要形式的缓存:页面级输出缓存、用户控件级输出缓存(或称为片段缓存)和缓存API。输出缓存和片段缓存的优点是非常易于实现,在大多数情况下,使用这两种缓存就足够了。而缓存API则提供了额外的灵活性(实际上是相当大的灵活性),可用于在应用程序的每一层利用缓存。本文只介绍页面级缓存和用户控件级缓存。
2.1. Page Caching
作为最简单的缓存形式,输出缓存只是在内存中保留为响应请求而发送的 HTML 的副本。其后再有请求时将提供缓存的输出,直到缓存到期,这样,性能有可能得到很大的提高(取决于需要多少开销来创建原始页面输出 - 发送缓存的输出总是很快,并且比较稳定)。
要实现页面输出缓存,只要将一条 OutputCache 指令添加到页面即可:
<%@ OutputCache Duration="60" VaryByParam="*" %>
如同其他页面指令一样,该指令应该出现在ASPX页面的顶部,即在任何输出之前。它支持五个属性(或参数),其中两个是必需的。
 Duration:必需属性。页面应该被缓存的时间,以秒为单位。必须是正整数。
 Location:指定应该对输出进行缓存的位置。如果要指定该参数,则必须是下列选项之一:Any、Client、Downstream、None、Server 或 ServerAndClient。
 VaryByParam:必需属性。Request 中变量的名称,这些变量名应该产生单独的缓存条目。"none" 表示没有变动。"*" 可用于为每个不同的变量数组创建新的缓存条目。变量之间用 ";" 进行分隔。 
 VaryByHeader:基于指定的标头中的变动改变缓存条目。
 VaryByCustom:允许在 global.asax 中指定自定义变动(例如,"Browser")。
利用必需的 Duration 和 VaryByParam 选项的组合可以处理大多数情况。例如,如果您的产品目录允许用户基于 categoryID 和页变量查看目录页,您可以用参数值为 "categoryID;page" 的 VaryByParam 将产品目录缓存一段时间(如果产品不是随时都在改变,一小时还是可以接受的,因此,持续时间是 3600 秒)。这将为每个种类的每个目录页创建单独的缓存条目。每个条目从其第一个请求算起将维持一个小时。
VaryByHeader 和 VaryByCustom 主要用于根据访问页面的客户端对页面的外观或内容进行自定义。同一个 URL 可能需要同时为浏览器和移动电话客户端呈现输出,因此,需要针对不同的客户端缓存不同的内容版本。或者,页面有可能已经针对 IE 进行了优化,但需要能针对 Netscape 或 Opera 完全降低优化(而不仅仅是破坏页面)。
2.2. Fragment caching
ASP.NET提供了部分缓存或区域缓存Web表单的功能。当希望在特定的页面上实现对缓存更多的控制时,可以使用该技术。
为了指定应该被缓存的用户控件,我们利用 @OutputCache 指令,就象整个页面缓存的用法一样。
<%@ OutputCache Duration=10 VaryByParam="*" %>
该示例将缓存用户控件60秒,并且将针对查询字符串的每个变动、针对此控件所在的每个页面创建单独的缓存条目。
<%@ OutputCache Duration="60" VaryByParam="none"
VaryByControl="CategoryDropDownList" %>
该示例将缓存用户控件60秒,并且将针对CategoryDropDownList控件的每个不同的值、针对此控件所在的每个页面创建单独的缓存条目。
还可以通过设置属性Shared=”true”,让使用它的所有页面共享这个控件缓存。

 

 
相关内容
J2EE调试测试
.NET开发框架
J2EE项目案例
.NET开源项目
软件测试工具
SQL2005开发
SQL2008数据库
LINQ语言
程序人俱乐部
软件技术与商业
软件工程模式
Silverlight技术
Web开发测试工具
J2EE开发框架整合
EclipseIDE集成环境
VisualStudio2008
查找更多关于 - NET开发Web、NET开发教程、NET开发技术