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 ...
随机推荐
- js创建对象的几种方式
/** * 顺便重温一下对象的创建方式 * 代码简单说明问题就好 * 概念性的东西这里就不提了,只加上自己简单理解 */ /** * 工厂模式,就是将手动的创建细节封装在一个方法里, * return ...
- CMM能力成熟度模型
CMM把软件企业的过程管理能力划分为5个等级: 1 .初始级:个别的.混乱无序的过程,软件缺乏定义,项目的成功严重依赖于某几个关键人员的努力.软件质量由个人的开发经验来保障. 2.可重复级 实施了基 ...
- 简单的导航viewpager
下载PagerSlidingTabStrip https://github.com/astuetz/PagerSlidingTabStrip 主界面: public class Main ...
- windows里面的批处理命令不停地处理同一条命令
最近在设置路由表的时候,为了方便,做了一个批处理 route.bat route delete 0.0.0.0route delete 10.25.0.0route ADD 10.25.0.0 MAS ...
- 项目文件""已被重命名或已不在解决方案中
如题,这个错误在vs2010里,开始编译的时候出现了,我的解决办法就是把所有的project都移除,然后再添加进来,就不弹这个错误了.
- 第59讲:Scala中隐式转换初体验
今天学习了下隐式转换的内容.所谓隐式转换,就是说,一个实例拥用1 2 3方法,但是当它需要4方法的时候,它没有,但是却可以通过转换成另一种类型来调用4方法,而且这种转换是自动转换不需要人为干预的,这种 ...
- vim中输入tab符
今天在写Makefile时各种出错.后来发现是all:的下一行,make前面必须是tab符,不能是空格. 但是vim中只要按tab就会自动转换成4个空格.平时编程需要,也不便把这个设置取消. 查了下, ...
- 萝卜白菜,给有所爱——C#和JAVA都会终将被时代淘汰
看到园子里又有一波试图掀起C#和JAVA的谁更好的争论,对于这些一直不断的争论,我觉得实在没有必要,黑格尔的存在即合理,中国的老古语说的萝卜白菜各有所爱,大家争论的再多其实卵用也没用,还不如趁着闲暇时 ...
- centos 安装apache 和 php5.6
centos 安装 php5.6,安装前需要先安装数据库和apache 安装 apache2.4 安装基础依赖:# yum install gcc gcc-c++ glibc glibc-devel ...
- springMVC中一个controller多个方法
web.xml文件: <?xml version="1.0" encoding="UTF-8"?><web-app version=" ...