(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 = 0; 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(-1);
HttpContext.Response.AddHeader("pragma", "no-cache");
HttpContext.Response.AddHeader("cache-control", "private");
HttpContext.Response.CacheControl = "no-cache";
}

[OutputCache(Duration = 0, Location = OutputCacheLocation.Client)]
public ActionResult Index()
{
var columnList = new List<ColumnDisplayModels>();
var viewModel = new ReportModels
{
ReportId = 1,
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="0">
</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(1000, null, null, OutputCacheLocation.ServerAndClient, "*");
}
}

华赐软件: www.huacisoft.com

C#开源社区: www.opencsharp.net

清泓美肤苑: 清泓美肤苑

Html5网站后台: Bootstrap3+html3+div+css3

 

Ajax在解决缓存时有三种办法。
1、加时间戮
对于一个浏览器,你的第一次点击是会调用rpc请求的, 但是你再用同一个浏览器提交表单的时候, rpc不会被提交, 因为参数一样, 这个可能是ajax的XMLHttpRequest对象的问题, 如设置了时间间隔了,实际上是(new ActiveXObject("Microsoft.XMLHTTP"))所以, 在实际操作的时候, 给rpc的参数传递一个没有用的guid= new Date().getTime()
一个时间戳 ,以保证每次的点击事件都会激发rpc请求, 因为这样的参数(或者说url)是不一样的。
为什么要把时间戳追加到目标url?
在某些情况下, 有些浏览器会把多个XMLHttpRequest请求的结果缓存在同一个url。如果对每个请求的响应不同,这就会带来不好的结果。把当前时间戳追加到url的最后,就能确保url的唯一性,从而避免浏览器的缓存结果。
2、在要异步获取的页面中写一段禁止缓存的代码:
Response.Buffer =True
Response.ExpiresAbsolute =Now() - 1
Response.Expires=0
Response.CacheControl="no-cache"
3、在ajax发送请求前加上xmlHTTP.setRequestHeader("If-Modified-Since","0");可以禁止缓存
xmlHTTP.open("get", URL, true);
xmlHTTP.onreadystatechange = callHTML;
xmlHTTP.setRequestHeader("If-Modified-Since","0");
xmlHTTP.send();

<%
    HttpContext.Current.Response.Buffer = true;
    HttpContext.Current.Response.Expires = 0;
    HttpContext.Current.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
    HttpContext.Current.Response.AddHeader("pragma", "no-cache");
    HttpContext.Current.Response.AddHeader("cache-control", "private");
    HttpContext.Current.Response.CacheControl = "no-cache";
%>

[清理页面缓存]asp.net、html的更多相关文章

  1. asp.net/html清理页面缓存的方法

    (1)   MVC BaseController: Controller内 protected override void Initialize(System.Web.Routing.RequestC ...

  2. [转]Asp.net mvc 网站之速度优化 -- 页面缓存

    网站速度优化的一般方法 由于网站最重要的用户体验就是速度,特别是对于电子商务网站而言. 一般网站速度优化会涉及到几个方面: 1. 数据库优化 — 查询字段简历索引,使用数据库连接池和持久化,现在还有种 ...

  3. ASP.NET 页面缓存

    ASP.NET 实现页面缓存页面缓存的使用方法非常的简单,只需要在aspx页的顶部加一句声明<%@ OutputCache Duration="60" VaryByParam ...

  4. ctrl+shift+del 清理火狐缓存,解决页面显示错乱问题

    ctrl+shift+del 清理火狐缓存,解决页面显示错乱问题

  5. (转) ASP.NET页面缓存

    原文:http://www.cnblogs.com/Sky_KWolf/archive/2010/12/05/1897158.html 静态页面全部内容保存在服务器内存中.当再有请求时,系统将缓存中的 ...

  6. ASP.NET几种清除页面缓存的方法

    在asp.net中使用模式dialog时,你会发现每次打开的页面都是相同的内容,页面内容并没有刷新,这是缓存的原因造成的, 解决方法如下: 第一种是ASP.NET清除页面缓存 Response.Buf ...

  7. 关于asp.net页面缓存

    1,ASPX页面缓存 页面缓存的使用方法非常的简单,只需要在aspx页的顶部加一句声明<%@ OutputCache Duration="60" VaryByParam=&q ...

  8. [Asp.net]缓存之页面缓存,控件缓存,缓存依赖

    写在前面 上篇文章介绍了缓存的基本概念及用途,另外也举了一个简单的例子,数据缓存(将一些耗费时间的数据加入到一个对象缓存集合中,以键值的方式存储.可以通过使用Cache.Insert()方法来设置缓存 ...

  9. 在ASP.NET MVC 3 中自定义AuthorizeAttribute时需要注意的页面缓存问题

    一.ASP.NET MVC中使用OutputCache实现服务器端页面级缓存 在ASP.NET MVC中,假如我们想要将某个页面(即某个Action)缓存在服务器端,可以在Action上标上以下特性: ...

随机推荐

  1. Android图片加载与缓存开源框架:Android Glide

    <Android图片加载与缓存开源框架:Android Glide> Android Glide是一个开源的图片加载和缓存处理的第三方框架.和Android的Picasso库类似,个人感觉 ...

  2. MySQL数据库2 - 登录MySQL及数据库管理

    一. 登录数据库 1.使用命令窗口登录MySQL 启动Mysql服务 -> 打开命令窗口 -> 输入登录密码 具体步骤:开始菜单 - 控制面板 - 管理工具 - 服务 - Mysql56( ...

  3. [debian]SublimeText>PrettyCode無效

    怣 apt-get install node http://nodejs.org/#download.

  4. 【转载】AngularJs 指令directive之controller,link,compile

    关于自定义指令的命名,你可以随便怎么起名字都行,官方是推荐用[命名空间-指令名称]这样的方式,像ng-controller.不过你可千万不要用 ng-前缀了,防止与系统自带的指令重名.另外一个需知道的 ...

  5. ASP代码审计 -4.命令执行漏洞总结

    命令执行漏洞: 保存为cmd.asp,提交链接: http://localhost/cmd.asp?ip=127.0.0.1 即可执行命令 <%ip=request("ip" ...

  6. hdu4666 Hyperspace ——曼哈顿距离

    link:http://acm.hdu.edu.cn/showproblem.php?pid=4666 这题学会了怎么处理曼哈顿距离. 比如维数是k,那么每个点有2^k个状态,求出在每个状态下,所有点 ...

  7. 关于HTML标签(元素)的那些事?

    关于HTML标签(元素)的那些事? 在战场上,知己知彼,方能百战百胜:在商场上,知己知彼,亦能呼风唤雨:在情场上,知己知彼,才能幸福美满.当然啦,在我们前端开发上,亦要知己知彼,才能叱咤风云.关于HT ...

  8. UVA340 猜数字游戏

    一个经典的找数字位置正确并且找到正确数列中存在的数字而错误的序列存在但是不是正确位置的算法. 看似很难的算法,但是lrj却很简单解决. #include<cstdio> #define M ...

  9. iOS9适配中的各种问题

    1.http在ios9上不能在使用.需要进行配置. the resource could not be loaded because the app transport security policy ...

  10. kuangbin_MST C (POJ 2031)

    全程double精度就能过了 间接0距离不用管 prim自动连起来的 G++交的话只能用%f输出 C++的话加不加l都可以 (这么说以后用%f肯定不会错咯) 不过我不懂为什么他们的空间时间差了好多倍. ...