asp.net/html清理页面缓存的方法
(1) MVC BaseController: Controller内
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
List<string> keys = new List<string>();
// retrieve application Cache enumerator
IDictionaryEnumerator enumerator = HttpRuntime.Cache.GetEnumerator();
// copy all keys that currently exist in Cache
while (enumerator.MoveNext())
{
keys.Add(enumerator.Key.ToString());
}
// delete every key from cache
for (int i = ; i < keys.Count; i++)
{
HttpRuntime.Cache.Remove(keys[i]);
}
}
或
public ActionResult Index()
{
HttpContext.Response.ContentType = "text/plain";
HttpContext.Response.Buffer = true;
HttpContext.Response.ExpiresAbsolute = DateTime.Now.AddDays(-);
HttpContext.Response.AddHeader("pragma", "no-cache");
HttpContext.Response.AddHeader("cache-control", "private");
HttpContext.Response.CacheControl = "no-cache";
}
或
[OutputCache(Duration = , Location = OutputCacheLocation.Client)]
public ActionResult Index()
{
var columnList = new List<ColumnDisplayModels>();
var viewModel = new ReportModels
{
ReportId = ,
ReportName = "",
ReportSql = "",
ReportColumns = columnList
};
return View(viewModel);
}
(2) HTML方法
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="">
</HEAD>
(3) 重新调用原页面的时候在给页面传一个参数: href="****.ASPX?random()"
ASPX:
方法1 aspx页的顶部加一句声明<%@ OutputCache Duration="60" VaryByParam="none" %>
方法2 Page_Load事件中加上
Context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
方法3
在请求网址后面加一个时间戳的参数。
xxx.aspx?d=aaa
aaa用datetime.now
Web.config中配置缓存:
一、web.config 配置页面输出缓存
<system.web>
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="pageCache" duration="60" varyByParam="none" enabled ="true"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
</system.web>
页面调用:
(1)Duration属性
该属性指定页或用户控件进行缓存的时间,以秒为单位。在页或用户控件上设置该属性为来自对象的 HTTP 响应建立了一个过期策略,并将自动缓存页或用户控件输出。
例如:设置页或用户控件进行输出缓存的持续时间为100秒。代码如下:
<%@ OutputCache Duration="100" VaryByParam="none" %>
注意:这是必选属性。如果未包含该属性,将出现分析器错误。
(2)VaryByParam属性
该属性为分号分隔的字符串列表,用于使输出缓存发生变化。默认情况下,这些字符串与随GET方法发送的查询字符串值对应,或与使用POST方法发送的参数对应。将该属性设置为多个参数时,对于每个指定参数组合,输出缓存都包含一个不同版本的请求文档。可能的值包括none、星号 (*)以及任何有效的查询字符串或POST参数名称。
注意:在ASP.NET页和用户控件上使用@OutputCache指令时,需要包含VaryByParam属性或VaryByControl属性。如果没有包含VaryByParam属性或VaryByControl属性,则发生分析器错误。如果不希望通过指定参数来改变缓存内容,可将VaryByParam属性值设置为none。如果希望通过所有的参数值改变输出缓存,可将属性设置为星号(*)。
二、web.config 配置 asp.net 应用程序全局缓存配置
<cache disableMemoryCollection = "false" //获取或设置一个值,该值指示是否当计算机处于内存压力下时是否禁止执行缓存内存回收
disableExpiration = "false" //获取或设置一个值,该值指示是否禁用缓存过期。如果禁用,则缓存项不会过期,并且不会对过期缓存项执行后台清理。
privateBytesLimit = "20971520" //获取或设置一个值,该值指示在缓存开始刷新过期项并尝试回收内存之前应用程序的最大专用字节大小。 此限制同时包括缓存所使用的内存量以及运行应用程序的正常内存开销。 如果设置为零,则指示 ASP.NET 将使用自己的试探法确定何时开始回收内存。
percentagePhysicalMemoryUsedLimit = 60"
privateBytesPollTime = "00:01:00"/> //获取或设置一个值,该值指示两次轮询应用程序专用字节内存使用量之间的时间间隔。
备注:给页面统一加上缓存
public class basepage : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.InitOutputCache(, null, null, OutputCacheLocation.ServerAndClient, "*");
}
}
asp.net/html清理页面缓存的方法的更多相关文章
- thinkphp 清理runtime缓存的方法, 清理指定目录
https://blog.csdn.net/qq_22823581/article/details/79081497 hinkphp 清理runtime缓存的方法, 清理指定目录 function d ...
- [清理页面缓存]asp.net、html
(1) MVC BaseController: Controller内 protected override void Initialize(System.Web.Routing.RequestC ...
- ASP.NET几种清除页面缓存的方法
在asp.net中使用模式dialog时,你会发现每次打开的页面都是相同的内容,页面内容并没有刷新,这是缓存的原因造成的, 解决方法如下: 第一种是ASP.NET清除页面缓存 Response.Buf ...
- Asp.net禁用页面缓存的方法
方法1.在Asp页面首部<head>中添加如下代码 Response.Buffer = True Response.ExpiresAbsolute = Now() - 1 Response ...
- ASP.NET MVC3系列页面缓存、缓存依赖SQL(真实项目注意细节)
缓存依赖数据库 第一步 1通过vs里面带的命令提示窗口. 2或者.NET Framework 版本 4(64 位系统)条件,%windir%\Microsoft.NET\Framework64\v4. ...
- Asp.net禁用页面缓存的方法总结
1.在Asp页面首部<head>加入 复制代码 代码如下: Response.Buffer = True Response.ExpiresAbsolute = ...
- ASP.NET 全局变量和页面间传值方法
http://www.cnblogs.com/dgjack/archive/2011/05/28/2060913.html 1. 使用QueryString变量 QueryString是一种非常简单的 ...
- 在OSchina上看到的清理到缓存的方法
/* * *文 件 名: DataCleanManager.java * 描 述: 主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录 */ i ...
- asp.net刷新本页面的六种方法总结
第一: private void Button1_Click( object sender, System.EventArgs e ) { Response.Redirect( Reque ...
随机推荐
- 写在学AngularJS之前
近来从不同途径听说AngularJS和MEAN stack,感觉很有趣的样子,于是准备抽时间来学习一下.在这里记录学习过程中的笔记. 简单整理一下先: 1. 我的学习资料: a) 官网 b) wiki ...
- Java学习笔记二——标识符和关键字
标识符 定义 标识符的定义:对各种变量.方法和类等要素命名时使用的字符序列成为标识符. 简单地说,就是凡是自己可以起名字的地方都叫标识符,都要遵守标识符的规则. 命名规则 标识符只能由字母.下划线&q ...
- [java基础]文档注释
转载自:http://blog.163.com/hui_san/blog/static/5710286720104191100389/ 前言 Java 的语法与 C++ 及为相似,那么,你知道 Jav ...
- 插入排序-java
排序-插入排序 基本思想:将待排序表看作左右两部分,其中左边为有序区,右边为无序区, 整个排序过程就是将右边无序区中的元素逐个插入到左边的有序区中,以构成新的有序区. 平均时间:O(n2) 最好情况: ...
- JavaWeb开发学习(二)-配置Tomcat服务器
1. 下载Tomcat服务器 Tomcat是一个免费.开源的JavaWeb服务器. Tomcat官网是http://tomcat.apache.org/ 我使用的是版本是Tomcat7.0,下载Zip ...
- java中类型转换
1.基本数据类型转换 char, byte,short,int,long,float,double,boolean (1)小类型数据可以直接赋给大类型数据 例:char a=' ...
- oracle在impdp时报ORA-31655和ORA-39154
检查表空间大小设置的是否合理. 另外可以试试 grant IMP_FULL_DATABASE to user;增加导入权限. (转)
- phoenix 开发API系列(三)phoenix api 结合数据库
概述 介绍了 api 的各种写法之后,下面介绍构建 api 时与数据库连接的方式. 注 下面使用的工程的完整代码已经公开在: http://git.oschina.net/wangyubin/phoe ...
- tsd-提升IDE对JavaScript智能感知的能力
在编写前端JavaScript代码时,最痛苦的莫过于代码的智能感知(Intelli Sense). 追其根源,是因为JavaScript是一门弱类型的动态语言.对于弱类型的动态语言来说,智能感知就是I ...
- Facebook 发布「流程」
时不时就会在面试过程中碰到有候选人问 Facebook 是否采用 Scrum 之类的敏捷方法,偶尔也会有中国的朋友问及 Facebook 上线流程.我通常会简单说几句,然后说「如果你真感兴趣的话,去搜 ...