`

ASP.NET中的缓存使用(1)

阅读更多

 

 

转自:http://blog.csdn.net/ws_hgo/archive/2010/04/22/5514855.aspx

 

(1)OutPutCache

首先说下几个重要的参数

 1)Duration 页或者用户控件进行缓存的时间(单位为秒)

 2)VaryByparam分号分割的字符串列表,用于使输出缓存发生变化,这些字符串与GET方法发送的查询字符串相对应,与POST发送的参数相对应,如果没有varyByParam或者VarByControl的时候页面将报错,如果不希望使用任何参数来改变指定内容请将值设置为None,否则为*

 3)VaryByCustom 表示自定义输出缓存的任意版本,如果赋予给属性browser,缓存将随浏览器版本和主要版本信息的不同而异

(1)如果页面有缓存的时间大于用户控件的缓存时间则页的输出缓存时间优先

view plaincopy to clipboardprint?
<%@ Page Language="C#" %>  
<%@ OutputCache Duration="50" VaryByParam="none" %>  
 
<%@ Register src="WebUserControl.ascx" tagname="WebUserControl" tagprefix="uc1" %>  
 
    <form id="form1" runat="server">  
    <div>  
<%Response.Write(DateTime.Now.ToString());%>  
    </div>  
      
    <uc1:WebUserControl ID="WebUserControl1" runat="server" />  
      
    </form>  
 
<%@ Control Language="C#" ClassName="WebUserControl" %>  
<%@ OutputCache Duration="20" VaryByParam="none" %>  
<mce:script runat="server"></mce:script>  
下面是自定义控件的:  
<%Response.Write(DateTime.Now.ToString());%> 
<%@ Page Language="C#" %>
<%@ OutputCache Duration="50" VaryByParam="none" %>

<%@ Register src="WebUserControl.ascx" tagname="WebUserControl" tagprefix="uc1" %>

    <form id="form1" runat="server">
    <div>
<%Response.Write(DateTime.Now.ToString());%>
    </div>
   
    <uc1:WebUserControl ID="WebUserControl1" runat="server" />
   
    </form>

<%@ Control Language="C#" ClassName="WebUserControl" %>
<%@ OutputCache Duration="20" VaryByParam="none" %>
<mce:script runat="server"></mce:script>
下面是自定义控件的:
<%Response.Write(DateTime.Now.ToString());%>
 

(2)上面是在页面中定义缓存在web.config中定义如下代码(然后再页面中调用也行!)

view plaincopy to clipboardprint?
<caching> 
        <outputCacheSettings> 
          <outputCacheProfiles> 
            <add name="CacheProfile" duration="30" enabled="true"/> 
          </outputCacheProfiles> 
            
        </outputCacheSettings> 
          
      </caching> 
<caching>
        <outputCacheSettings>
          <outputCacheProfiles>
            <add name="CacheProfile" duration="30" enabled="true"/>
          </outputCacheProfiles>
         
        </outputCacheSettings>
       
      </caching>

下面说的是缓存后替换(动态更新缓存页的部分)

{

1.以声明方式使用 Substitution 控件。

2.以编程方式使用 Substitution 控件 API。

3.以隐式方式使用 AdRotator 控件。

}

(2)Substitution 指定输出缓存页上已动态内容替换该控件的部分

实例代码如下

view plaincopy to clipboardprint?
<%@ Page Language="C#" %> 
<%@ OutputCache Duration="30" VaryByParam="none" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<mce:script runat="server"><!--  
    protected void Page_Load(object sender, EventArgs e)  
    {  
        Label1.Text = DateTime.Now.ToString();  
    }  
    //当Substitution控件执行GetCurrentDateTime这个方法的时候该方法必须匹配  
    //HtttpresponseSubstitutionCallback的委托签名  
    public static string GetCurrentDateTime(HttpContext Content)  
    {  
        return DateTime.Now.ToString();  
    }  
// --></mce:script> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>无标题页</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <p>下面是无缓存的</p> 
     
      <asp:Substitution ID="Substitution1" runat="server" MethodName="GetCurrentDateTime" /> 
     <br /> 
         <p>下面是有缓存的</p> 
     <asp:Label ID="Label1" runat="server" Text=""></asp:Label> 
          
    </div> 
      
    </form> 
</body> 
</html> 
<%@ Page Language="C#" %>
<%@ OutputCache Duration="30" VaryByParam="none" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<mce:script runat="server"><!--
    protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = DateTime.Now.ToString();
    }
    //当Substitution控件执行GetCurrentDateTime这个方法的时候该方法必须匹配
    //HtttpresponseSubstitutionCallback的委托签名
    public static string GetCurrentDateTime(HttpContext Content)
    {
        return DateTime.Now.ToString();
    }
// --></mce:script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <p>下面是无缓存的</p>
  
      <asp:Substitution ID="Substitution1" runat="server" MethodName="GetCurrentDateTime" />
     <br />
         <p>下面是有缓存的</p>
     <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
       
    </div>
   
    </form>
</body>
</html>
 

(3)设置页的可缓存性

页或者自定义控件的可缓存性是指:是否在页的生命周期内在设备上缓存页,可缓存页的设备包括:发出请求的浏览器,相应请求的Web 服务器以及请求或响应流中其他任何具有缓存功能的设备,如代理服务器。

可以使用HttpCacheability


  NoCache 设置 Cache-Control: no-cache 标头。如果没有字段名,则指令应用于整个请求,且在满足请求前,共享(代理服务器)缓存必须对原始 Web 服务器强制执行成功的重新验证。如果有字段名,则指令仅应用于命名字段;响应的其余部分可能由共享缓存提供。 
Private 默认值。设置 Cache-Control: private 以指定响应只能缓存在客户端,而不能由共享(代理服务器)缓存进行缓存。 
Server 指定响应仅缓存在源服务器上。与 NoCache 选项相似。客户机接收 Cache-Control: no-cache 指令,但文档是在原始服务器上缓存的。等效于 ServerAndNoCache。 
ServerAndNoCache 指定响应仅缓存在源服务器上。与 NoCache 选项相似。客户机接收 Cache-Control: no-cache 指令,但文档是在原始服务器上缓存的。等效于 ServerAndNoCache。 
Public 设置 Cache-Control: public 以指定响应能由客户端和共享(代理)缓存进行缓存。 
ServerAndPrivate

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ws_hgo/archive/2010/04/22/5514855.aspx

分享到:
评论

相关推荐

    asp.net2.0缓存

    数据缓存则用于存储应用程序中使用的数据,如数据库查询结果,这减少了对数据库的访问,提高了响应速度。 ASP.NET 2.0中的缓存策略包括: 1. **绝对过期**:设置一个固定的时间间隔,到达这个时间后,缓存项将被...

    ASP.NET 数据库缓存

    在ASP.NET 2010中,它提供了高效且灵活的数据缓存机制,以减少对数据库的频繁访问,从而降低服务器负载,提升用户体验。本文将深入探讨这个主题,并通过一个简单的例子来阐述其工作原理。 首先,我们要理解数据库...

    ASP.net页面缓存技术

    Insert() 方法用于覆盖 ASP.NET 缓存中现有的缓存项,而 Add() 方法只用于在 ASP.NET 缓存中添加新的缓存项。 输出缓存和数据缓存都是提高 ASP.net 应用程序性能的重要技术。它们可以减少服务器的负载,提高页面的...

    ASP.NET_缓存技术

    本文将深入探讨ASP.NET缓存的各个方面,包括基本概念、种类、工作原理以及如何在实际应用中有效利用。 一、缓存的基本概念 缓存是一种存储机制,它临时存储经常访问的数据以便快速访问。在ASP.NET中,缓存主要分为...

    ASP.NET数据缓存

    首先,我们需要了解ASP.NET缓存的两个主要类别:Application Cache和Page Output Cache。Application Cache主要用于存储对象,例如数据库查询结果,而Page Output Cache则用于缓存整个网页内容,减少服务器生成页面...

    ASP.NET中缓存技术(Cache)的了解运用(项目案例一个)

    ASP.NET的缓存技术是提高Web应用程序性能的关键工具,它允许开发者存储常用数据,避免频繁地从数据库中读取,从而显著减少服务器负载和响应时间。在这个项目案例中,我们将深入探讨ASP.NET中的Cache机制,了解其工作...

    C#写的在asp.net中的缓存

    然而,在ASP.NET中,直接使用`HashTable`作为全局缓存可能并不理想,因为ASP.NET提供了更高级的缓存管理工具,如`System.Web.Caching.Cache`类。`Cache`对象是ASP.NET应用程序的内置缓存机制,提供了过期策略、依赖...

    ASP.NET缓存技术应用总结

    ASP.NET缓存技术是提升应用程序性能的关键手段,它通过存储常用数据或计算结果,避免了重复的数据库查询或计算,从而显著减少了响应时间。本文主要总结了ASP.NET中的各种缓存策略及其应用。 首先,我们要了解缓存的...

    asp.net缓存技术

    在 ASP.NET 页面中使用 OutputCache,可以通过在页面顶部添加指令来实现: ```html *" %&gt; ``` - `Duration`:指定缓存的有效时长,单位为秒。例如,“60”表示缓存有效期为 60 秒。 - `VaryByParam`:指定缓存是否...

    asp.net缓存 缓存

    ASP.NET缓存是微软开发的Web应用程序框架中的一个重要特性,用于提高网站性能和减少服务器负载。缓存技术在.NET框架中扮演着至关重要的角色,它能够存储数据以便快速访问,从而减少对数据库或其他慢速资源的依赖。在...

    ASP.NET缓存剖析

    总之,ASP.NET缓存是一个多维度的优化策略,它涵盖了从客户端到服务器端的各个层面。合理运用缓存技术,可以大幅提升用户体验,降低服务器负载,是构建高性能Web应用的基石。开发者应根据实际需求选择合适的缓存策略...

    ASP.NET15缓存机制.rar

    在ASP.NET 15中,缓存机制得到了进一步的优化,使得开发者可以更好地利用内存资源,减少对数据库和其他资源的访问,从而提升网站响应速度和用户体验。 一、ASP.NET 缓存简介 ASP.NET 的缓存系统分为两种主要类型:...

    ASP.NET数据缓存技术

    ASP.NET数据缓存技术是微软开发的Web应用程序框架ASP.NET中的一个重要特性,它主要用于提高网站性能,通过将常用数据暂存于内存中,避免频繁访问数据库,从而减少服务器的负载和响应时间。在这个主题中,我们将深入...

    ASP.NET 2.0快速入门(5):ASP.NET 2.0 缓存技术

    在ASP.NET 2.0中,缓存技术是提高应用程序性能的关键工具之一,允许开发者存储经常访问的数据,减少对数据库或其他资源的依赖,从而提升响应速度。在这篇文章中,我们将深入探讨ASP.NET 2.0缓存技术的基础知识和应用...

    显示所有缓存 清除所有缓存 Asp.net(C#)

    本文将详细介绍如何在ASP.NET (C#) 应用程序中实现显示所有缓存以及清除所有缓存的功能。 #### 1. 缓存的概念 缓存是一种临时存储数据的方法,目的是为了快速访问这些数据。在ASP.NET中,有两种主要类型的缓存:...

    .NET系统缓存简介

    1. `Insert`方法:类似`MemoryCache.Add`,但ASP.NET Cache提供了更多的缓存依赖选项,如页面输出缓存、文件系统缓存依赖等。 2. `Get`和`Remove`方法与`MemoryCache`相似。 3. `CacheDependency`类:用于创建缓存...

    asp.net缓存更新

    本文将深入探讨ASP.NET缓存管理及其更新策略。 首先,ASP.NET提供两种主要的缓存机制:Application Cache(应用程序缓存)和HttpRuntime.Cache(运行时缓存)。Application Cache主要用于存储全局性、在整个应用...

Global site tag (gtag.js) - Google Analytics