用户控件的缓存技术之一【共三篇】

原文发布时间为:2009-10-29 —— 来源于本人的百度文章 [由搬家工具导入]

因为开发的网站数据量很大,对一些动态数据,但又长时间不变的数据,考虑了好久,最终采用ascx缓存技术。

还好,现在网上的资料很全,在此对提供帮助的网友表示万分的感谢,现在把搜索的资料进行整合,以便自己查找学习,也希望能帮助其他人。

用户控件的缓存,也叫片断缓存。

在ascx文件中写入缓存的语句,而不在aspx文件中写缓存语句,这样ASP.NET就可以只缓存ascx片断的输出了。一 般像页眉或页脚基本上都是一样的,就不需要重新加载。但是如果其中有动态变化的数据就不能对其进行缓存,因为一旦被缓存后程序就不会再创建它的实例来更新 数据显示,只有等到生存期过期才行,所以对于这种情况就不适于用页面片断缓存。

注意:

一、注意片段缓存不支持Location特性;缓存页面片段惟一合法的地方是web服务器。这是因为片段缓存在ASP.NET中是新的功能,所以浏览器和代理服务器不支持。

二、片段缓存有另外一个在页面缓存中没有的特性——VaryByControl。VaryByControl特性允许指定一个由分号分隔的字符串列表,代表用户控件内使用的控件的名称;ASP.NET将针对值的每个不同的组合生成用户构件的一个缓存版本。以下是缓存属性说明

Duration允许我们控制页面在缓存中生存的时间(单位是秒)

VaryByParam允许我们缓存页面的不同版本。在上面的例子中,VaryByParam设为了RequestID,所以ASP.NET使用RequestID参数的不同值, 这些值或者是在HTTP GET的查询字符串中传入,或者是在HTTP POST的参数中传入。可以通过检查RequestID参数的值让应用程序区分不 同的用户;通过在页面的OutputCache指令中放置VaryByParam="RequestID",可以让ASP.NET为每个用户缓存页面的不 同版本。

如果不想根据参数的值缓存页面的不问版本,那么只要把VaryByParam设为none。

也可以要求ASP.NET为每个可能的参数组合缓存页面的一个版本。为此,可把VaryByParam设为*。

VaryByCustom特性与VaryByParam的相似之处在于,它们允许指定何时应创建页面新的缓存版本。

VaryByCustom当设为browser时,允许我们根据浏览器的名称和主版本信息缓存不同版本。也可以把它设为一个自定义方法的名称,从而实现我们自己的逻辑,控制缓存的版本。

示例说明:

在ascx 文件头部加 <%@ OutputCache Duration="30" VaryByParam="None"%>
上面是说缓存这个控件30秒,并且缓存内容不随任何指定参数发生变化

在aspx页面像正常调用ascx文件一样,注册引用。

<%@ Register TagName="Prov" TagPrefix="uc" Src="~/common/AreaYP.ascx" %>
       <uc:Prov ID="areaprov" runat="server" />

如果要对该用户控件自定义的属性赋值,需要考虑到缓存控件,在引用时涉及到两个状态对象。初次调用时,使用的是控件本身,缓存期中,使用的是系统根据控件的创建形式相应的建立新的缓存对象。

属性赋值将在下篇给出。

时间: 2024-08-01 10:32:58

用户控件的缓存技术之一【共三篇】的相关文章

用户控件的缓存技术之二【共三篇】

原文发布时间为:2009-10-29 -- 来源于本人的百度文章 [由搬家工具导入] ASP.NET 缓存功能是一项很重要的功能,而这其中使用最多的就是利用用户控件实现的片段缓存。有时候,缓存整个页是不实际的;可能需要为每个请求动态创建页的某些部分。在这些情况下,您可能值得花时间来标识与需要大量的服务器资源来构造的页请求相关联的对象或数据。一旦标识了这些项,您就可以通过在 Web 窗体用户控件中创建这些项将它们从页的其他部分分离出来,然后在一段指定的时间中对这些项进行缓存,以节省服务器资源。这就

用户控件的缓存技术之三【共三篇】

原文发布时间为:2009-11-03 -- 来源于本人的百度文章 [由搬家工具导入] 缓存依赖技术,就是某个文件的改变,缓存才改变。 不多说,看源码吧: http://download.csdn.net/source/1779122 ================================================ 再加一个页面文件缓存依赖: <%@ Page Language="C#" AutoEventWireup="true" CodeFi

asp.net 用户控件

转载自http://www.cnblogs.com/SkySoot/archive/2012/09/04/2670678.html 在 .NET 里,可以通过两种方式把自己的控件插入到 Web 窗体框架中: 用户控件:它是一小段页面,可以包括静态 HTML 代码和 Web 服务器控件.用户控件的好处是一旦创建了它,就可以在同一个 Web 应用程序的多个页面重用它.用户控件可以加入自己的属性,事件和方法. 自定义服务器控件:它是被编译的类,它通过编程生成自己的 HTML .服务器控件总是预编译到

(九)ASP.NET自定义用户控件(2)

http://www.cnblogs.com/SkySoot/archive/2012/09/04/2670678.html 用户控件 在 .NET 里,可以通过两种方式把自己的控件插入到 Web 窗体框架中: 用户控件:它是一小段页面,可以包括静态 HTML 代码和 Web 服务器控件.用户控件的好处是一旦创建了它,就可以在同一个 Web 应用程序的多个页面重用它.用户控件可以加入自己的属性,事件和方法. 自定义服务器控件:它是被编译的类,它通过编程生成自己的 HTML .服务器控件总是预编译

用户控件&amp;自定义控件----.Net再学

开始学习.Net到现在两年了快,开始学习java 也有大半年了,中间做项目,又开始.Net的学习.这次做.Net项目,后台代码敲的不是太多,重点放在了UI上,这也是这篇博客要写的内容有关,做UI就少不了控件的使用.这次做UI 主要是提取公共,抽象控件. 敲代码,就离不开控件,那是第一次.Net学习过之后,对于控件的认识很肤浅,通过这次学习,又弥补了对UI控件的认识.这篇博客要说的是:用户控件和自定义控件.提到这两种控件,想必编程的孩子们都不陌生,但是谈到使用,谈到他们的区别,伙伴们清楚吗? 我们

.net用户控件--un

用户控件用户控件是个什么东西?自定义的反复重用的控件集合 好处?1.代码重用2.结构良好3.分工开发4.局部缓存 难点:一.交换信息:(一)从页面向用户控件交换信息.代码写在页面中.1.用户控件名.FindControl("用户控件中的控件的ID")TextBox textBox1 = WUC1.FindControl("TextBox1") as TextBox; 2.事先在用户控件中定义public属性,通过属性为里面的控件赋值或取值.用户控件中的代码: pub

WPF MVVM 用户控件完成分页

项目中经常会有分页查询的情况,在WPF中我们可以通过用户控件完成分页 一下为分页控件的页面代码, <UserControl x:Class="Foundation.UCtrl.NextPageControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml&qu

.net用户控件

用户控件用户控件是个什么东西?自定义的反复重用的控件集合 好处?1.代码重用2.结构良好3.分工开发4.局部缓存 难点:一.交换信息: 注意信息的交换只在相邻层之间进行交换,如果是嵌套交换信息除Session外都需要一层一层的写代码交互 (一)从页面向用户控件交换信息.代码写在页面中. 1.用户控件名.FindControl("用户控件中的控件的ID") TextBox textBox1 = WUC1.FindControl("TextBox1") as TextB

ASP.NET MVC 中使用用户控件——转

讲讲怎么在 ASP.NET MVC2中使用用户控件.首先我们新建一个用户控件, 我们命名为SelectGroup.ascx,代码如下 <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> <script language="javascript" type="text/javascript" src="<%