ASP.NET缓存机制基础概念

设置ASP.NET页面不被缓存(客户端/服务器端取消缓存方法) 设置页面不被缓存:客户端取消缓存、服务器具端取消缓存的具体实现代码如下感兴趣的朋友可以参考下哈,希望对大家有所帮助 立即下载

ASP.NET中的数据缓存有许多种,一般来说大型的数据使用 Cache对象缓存,用户身份信息用Session对象缓存,小型数据用Cookie对象缓存在客户端。本文介绍ASP.NET缓存机制的一些基础概念。

AD:


    ASP.NET缓存机制名词解释

    页输出缓存:保存页处理输出,下次重用所保存的输出

    应用程序缓存:允许缓存所生成的数据,如DataSet

    ASP.NET缓存机制概念㈠:页输出缓存

    1、页输出缓存的几中形式

    ①<%@ OutputCache Duration="60" VaryByParam="None" Location="Any"%>

    Location指定在哪个地方缓存,Any任何地方都缓存。

    60秒以内看到的都是一样的了。

    ②还可在配置文件里写,然后在页面调用配置文件的缓存名称。

    ③用编程的方式:

    Response.Canche.SetExpires(DateTime.Now.AddSeconds(3));

    Response.Canche.SetCacheabiliy(HttpCacheability.Public);

    Response.Canche.SetValidUntilExpires(true);

    相当于:

    Public => Any

    Private => Client

    NoCache => None

    Server => Server

    ServerAndPrivate =>ServerAndClient

    2、使用文件依赖项缓存页输出

    产生背景:有时候,可能需要在文件发生更改时从输出缓存中移除某一项。就是说文件改了以后缓存立即失效。

    string filepath = Server.MapPath("TextFile1.txt");

    Response.AddFileDependency(filepath);//添加缓存依赖项

    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));

    Response.Cache.SetCacheability(HttpCacheability.Public);

    Response.Cache.SetValidUntiExpires(true);

    3、缓存多个版本

    ①使用请求的浏览器对页的各个版本进行缓存

    <%@OutputCache Duration="10" VaryByParam="None" VaryByCustom="browser"%>

    ②使用参数对页的各个版本进行缓存

    <%@OutputCache Duration="60" VaryByParam="City"%>

    这个调试可以在url后加QueryString

    如:...url?City=shanghai

    程序里得到这个上海然后再做其他的操作,这个时候如果参数传的还是shanghai它就不会在走到程序里了。

    4、动态更新缓存页的部分,有三种方法可以实现部分不缓存

    ①已声明方式使用Substitution控件

    <asp:Substitution ID="Substitution1" runat="server" MethodName="GetCurrentDateTime" />

    public static string GetCurrentDateTime(HttpContext context)

    {

    return DateTime.Now.ToString();

    }

    //方法签名必须和委托签名一致

    ②以编程的方式使用Substitution控件API

    Response.WriteSubstitution(new HttpResponseSubstitutionCallback(GetCurrentDateTime))

    ③以隐式方式使用AdRotator控件

    这个控件永远都是不缓存的

    ASP.NET缓存机制概念㈡:SQL Server依赖的缓存,非常之有用

    当表数据发生改变就清除缓存

    1、为SQL Server启用缓存通知

    aspnet_regsql.exe -S <Server> -U <Username> -P <Password>

    -ed -d Northwind -et -t Employees

    Server:服务器

    Username:用户名

    Password:密码

    Northwind:数据库

    Employees:表

    2、为缓存功能配置网页

    <%@OutputCache Duration="3600" SqlDependency="Northind:Employees" VaryByParam="none"%>

    3、在Web.config文件中设置缓存配置

    <caching>

    <sqlCacheDependency enabled="true" pollTime="1000">

    <database>

    <add name="Northind" connectionStringName="..." pollTime = "1000" />

    </database>

    </sqlCacheDependency>

    </caching>

    //这里的name要是数据库名称

    ASP.NET中的数据缓存有许多种,一般来说大型的数据使用 Cache对象缓存,用户身份信息用Session对象缓存,小型数据用Cookie对象缓存在客户端。

    其中 Cache和Session应该属于系统级的缓存,Cookie属于用户客户端的缓存

    除此之外还有用户控件的缓存,我转载一篇文章来详细介绍用户控件的缓存

    <%@ 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则应取消这种优化功能。后一个例子非常普遍,我们将提供一个说明如何实现此目标的示例:

    示例:VaryByCustom用于支持浏览器自定义

    为了使每个浏览器都具有单独的缓存条目,VaryByCustom的值可以设置为“browser”。此功能已经内置在缓存模块中,并且将针对每个浏览器名称和主要版本插入单独的页面缓存版本。<%@ OutputCache Duration="60" VaryByParam="None" VaryByCustom="browser"%>

    示例:

    <%@ OutputCache Duration="60" VaryByParam="*" %>

    该示例将缓存用户控件60秒,并且将针对查询字符串的每个变动、针对此控件所在的每个页面创建单独的缓存条目。

    <%@ OutputCache Duration="60" VaryByParam="none"

    VaryByControl="CategoryDropDownList" %>

    该示例将缓存用户控件60秒,并且将针对CategoryDrop

    DownList控件的每个不同的值、针对此控件所在的每个页面创建单独的缓存条目。

    <%@ OutputCache Duration="60" VaryByParam="none" VaryByCustom="browser"

    Shared="true" %>

    最后,该示例将缓存用户控件60秒,并且将针对每个浏览器名称和主要版本创建一个缓存条目。然后,每个浏览器的缓存条目将由引用此用户控件的所有页面共享(只要所有页面都用相同的ID引用该控件即可)。

    下面的示例说明了如何设置页或用户控件进行输出缓存的持续时间。

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

    Asp.net里的缓存原理 Asp.net的缓存技术用于对网页里的经常被人访问的内容进行缓存,这样当用户第二次访问时就会速度的访问到您的页面 立即下载

    相关推荐

    PLDM入门(七):FRU Data Format

    每个字段为TLV(Type-Length-Value)格式,具体类型、长度范围和值定义需参考。通过条件过滤(记录句柄、类型、字段类型等)分块获取FRU记录数据(可选功能)。整个FRU数据表由多个FRU记录数据块组成,每个数据块对应表2的结构(即包含。决定,每个字段按顺序排列(Type→Length→Value)通过分块传输方式写入FRU记录表数据(需终端支持写入操作)。(文档未提供表5内容,需结合标准文档完整版)。、字段数量、编码类型及具体字段的TLV数据)。无请求数据(空请求)。

    weixin_44032634的博客 1762

    ASP.net缓存机制

    缓存缓存机制页输出缓存:保存页处理输出,下次重用所保存的输出应用程序缓存:允许缓存所生成的数据,如DataSet㈠页输出缓存1、页输出缓存的几中形式①Location指定在哪个地方缓存,Any任何地方都缓存。60秒以内看到的都是一样的了。②还可在配置文件里写,然后在页面调用配置文件的缓存名称。③用编程的方式:Response.Canche.SetExpires(DateTime.Now.A

    知而获智 1249

    电力工程师必看:GOOSE/SV/MMS三协议在智能变电站中的分工与联动实例

    本文深入解析了智能变电站中GOOSE、SV、MMS三大核心通信协议的分工与协同机制。GOOSE协议作为过程层的“闪电信使”,负责毫秒级传输跳闸命令等事件信息;SV协议则传输精确同步的电流电压采样值流;而MMS协议作为站控层的“管理语言”,实现设备监控与数据管理。三者基于IEC 61850标准,在过程层、间隔层和站控层之间高效联动,共同构建了智能变电站稳定可靠的通信骨架。

    jj890的博客 366

    如何修改.net framework

                                     如何修改.net framework                                            周银辉 这段时间为跟踪一个Bug而焦头烂额,最后发现是Framework的问题,这让人多少有些绝望。所以到微软论坛提了个帖子,希望能得到些帮助。虽然论坛智能到能够判断

    zhouyinhui的专栏 1018

    【Get深一度】小波分析概念1——紧支撑集是什么意思,通俗解释

    最近学到小波,在仿真中也用到了紧支撑函数;紧支撑性越好,说明能量越集中;用最通俗的话来讲,紧支撑是这样的: 对于函数f(x),如果自变量x在 0附近的取值范围内,f(x)能取到 C; 而在此之外,f(x)取值为 0; 那么这个函数f(x)就是紧支

    Trey_优快云 的优快云博客 8348

    【电源专题】LDO基础——热性能2

    对于LDO散热而言,选择合适的元件并不是一件简单的任务。为了实现高效、尺寸得当并成本低的散热解决方案,我们在早期设计阶段就需要确保所有器件都可用并且已经考虑到元件和各种特性。

    一点硬件 895

    .net页面缓存

    1,ASPX页面缓存页面缓存的使用方法非常的简单,只需要在aspx页的顶部加一句声明<%@ OutputCache Duration="60" VaryByParam="none" %>这样整个页面的内容都会被缓存,页面中的ASP.NET代码、数据源在缓存期间都不会被运行,而是直接输出缓存的页面内容。页面缓存是针对所有这个页面的访问者。这样1个访问者和1万个访问者、一次访...

    220

    UG二次开发GRIP刻字

    UG二次开发GRIP刻字

    qq285503851的博客 1138

    asp.net缓存(转)

    转自:http://www.cnblogs.com/knowledgesea/archive/2012/06/20/2536603.html 一、缓存概念,缓存的好处、类型。 缓存是一种用空间换取时间的技术,通俗点也就是说把你得到的数据存放在内存中一段时间,在这短时间内服务器不去读取数据库、或是真实的数据源,而是读取你存放在内存中的数据,这里你会疑惑怎...

    dgnwy6921的博客 100

    嵌入式面经篇八——进程&线程

    记录一些招聘公司在招聘嵌入式软件岗位时的一些问题,此文为第八篇。进程上文:是指进程由用户态切换到内核态时需要保存用户态时CPU寄存器中的值,进程状态以及堆栈上的内容。即保存当前进程的状态,以便再次执行该进程时,能够恢复切换时的状态,继续执行。进程下文:是指切换到内核态后执行的程序,即进程运行在内核空间的部分。中断上文:硬件通过中断触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和参数也要传递给内核,内核通过这些参数进行中断处理。

    明天你好的博客 1854

    Unity-TextMeshPro如何扩展材质实现字体Face+Outline流光效果

    前言 TexeMeshPro 是Unity的一个Text文本插件,实现了比UGUI的Text,更好看的效果,跟高效的性能,所以深受大家的喜欢,但是再好的插件,也不是万能的,比如我们的策划有个新需求,要我们的VIP的名字比普通玩家有更好看的效果,例如:字体流光,外发光颜色扰动,字体贴图等等。那我们就需要去扩展TextMeshPRo的shader功能了。如下图所示 本文,我就带大家一起来扩展一下:如何扩展TextMeshProUGUI TextMesh原始面板 扩展功能后的面板 扩展TextMeshPro

    TxNet 9677

    [转]ASP.NET缓存概念及其应用浅析

    ASP.NET缓存概念是什么呢?通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能。例如,如果应用程序使用复杂的逻辑来处理大量数据,然后再将数据作为用户频繁访问的报表返回,避免在用户每次请求数据时重新创建报表可以提高效率。同样,如果应用程序包含一个处理复杂数据但不需要经常更新的页,则在每次请求时服务器都重新创建该页会使工作效率低下。 ...

    Carter12175的博客 189

    假人有限元模型

    假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

    ASP.NET Core中的Http缓存

    ASP.NET Core中的Http缓存Http响应缓存可减少客户端或代理对web服务器发出的请求数。响应缓存还减少了web服务器生成响应所需的工作量。响应缓存由Http请求中的...

    dotNET跨平台 477

    jre9下载 jdk9

    (Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

    廖雪峰Python教程[完整版]

    廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

    ASP.NET 缓存(Cache)介绍

    ASP.NET 缓存概述  通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能。例如,如果应用程序使用复杂的逻辑来处理大量数据,然后再将数据作为用户频繁访问的报表返回,避免在用户每次请求数据时重新创建报表可以提高效率。同样,如果应用程序包含一个处理复杂数据但不需要经常更新的页,则在每次请求时服务器都重新创建该页会使工作效率低

    niemeiquan的专栏 2767

    计算机控制技术及应用

    《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

    ASP.NET缓存 Cache

    缓存介绍 如果每次进入页面的时候都查询数据库生成页面内容的话,如果访问量非常大,则网站性能会非常差, 而如果只有第一次访问的时候才查询数据库生成页面内容,以后都直接输出内容,则能提高系统性能, 这样无论多少人访问都只访问一次数据库,数据库压力不变 缓存是一种用空间换取时间的技术,存在于计算机中很多地方,用来将一些慢速设备中的常用数据保存 在快速设备中,取数据的时候直接从快速设备中取,

    tyfbhlxd的博客 619

    (转)ASP.NET缓存概念及其应用浅析

    ASP.NET缓存概念及其应用浅析 ASP.NET缓存是什么呢?ASP.NET缓存有什么样子的特点呢?本文就向你详细介绍ASP.NET缓存的相关情况。 ASP.NET缓存概念是什么呢?通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能。例如,如果应用程序使用复杂的逻辑来处理大量数据,然后再将数据作为用户频...

    ahpfcge26796935的博客 145

    ASP.NET缓存概念及其应用浅析

    ASP.NET缓存概念是什么呢?通常,应用程序可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能。例如,如果应用程序使用复杂的逻辑来处理大量数据,然后再将数据作为用户频繁访问的报表返回,避免在用户每次请求数据时重新创建报表可以提高效率。同样,如果应用程序包含一个处理复杂数据但不需要经常更新的页,则在每次请求时服务器都重新创建该页会使工作效率低下。 在这些情

    鱼汤的技术资料库 3234

    asp.net 缓存

    asp.net 缓存 一、缓存概念,缓存的好处、类型。            缓存是一种用空间换取时间的技术,通俗点也就是说把你得到的数据存放在内存中一段时间,在这短时间内服务器不去读取数据库、或是真实的数据源,而是读取你存放在内存中的数据,这里你会疑惑怎么设置存放数据,能存放什么样子的数据,存放时间的设置,真实数据源数据改变服务器不就读取存在偏差?别急,下面慢慢会说到的。。    

    qq804702802的专栏 369

    .NET框架中的缓存

    缓存使得你可以快速的获取内存中存储的数据。当再次访问数据的时候,应用从缓存中获取数据,而不是从数据的原始源获取。这么做可以提高性能和扩展性。另外,当数据源临时不可用的时候,缓存使得数据还是可用的。 你可以用.NET提供的缓存功能提高应用的性能和扩展性,缓存功能可以在windows客户端应用中使用,也可以在ASP.NET这种服务端应用中使用。 ...

    weixin_34087503的博客 156

    Asp.Net 之 缓存机制

    Asp.Net 之 缓存机制 转载于:https://www.cnblogs.com/macT/p/9952505.html

    weixin_30725315的博客 52

    asp向不同的用户发送信息_ASP.NET Core中的Http缓存

    http://ASP.NET Core中的Http缓存Http响应缓存可减少客户端或代理对web服务器发出的请求数。响应缓存还减少了web服务器生成响应所需的工作量。响应缓存由Http请求中的header控制。而ASP.NET Core对其都有相应的实现,并不需要了解里面的工作细节,即可对其进行良好的控制。了解Http缓存Http协议中定义了许多缓存,但总体可以分为强缓存和协商缓存两类。 强缓存强...

    weixin_39627361的博客 81
    上一篇: ASP.NET缓存数据添加方法一览
    下一篇: C#参数化查询数据库防注入
    Mevin
    博客等级 码龄18年 27粉丝 3原创
    评论
    成就一亿技术人!
    拼手气红包6.0元
    还能输入1000个字符
     
     条评论被折叠 查看
    添加红包

    请填写红包祝福语或标题

    个

    红包个数最小为10个

    元

    红包金额最低5元

    当前余额3.43元 前往充值 >
    需支付:10.00元
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付元
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值