asp.net 取消缓存的方法介绍

发布时间:2020-01-22编辑:脚本学堂
asp.net程序中如何取消缓存呢,本文为大家作简要的介绍,有需要的朋友,可以参考下。

asp.net 取消缓存的方法。

1、取消缓存
(1)客户端取消
 

复制代码 代码示例:
<html>
<head>
<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">
</head>
 

(2)服务器具端取消:
服务器端:
 

复制代码 代码示例:
Response.Buffer = true;
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
Response.Cache.SetExpires(DateTime.Now.AddDays(-1));
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.Cache.SetNoStore();

Global里面:
 

复制代码 代码示例:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
HttpContext.Current.Response.Cache.SetNoStore();
}
<%@ OutPutCache Location="None"%>

页面基类:
 

复制代码 代码示例:
public class PageBase : Page
{
public PageBase() {}
protected override OnLoad( EventArgs e ) {
Response.Cache.SetNoStore();
base.OnLoad();
}
}
 

最简单的方法,可以在URL后面随机的加一些没用的参数,比如:
http://xxx/xxx/xxx.jpg?p=xxx
IE是用过URL来控制缓存的,这样就解决了
(3)web.config可以设置吧?
1、客户端缓存与代码中缓存Cache对象的区别
Cache对象是给你自己缓存东西用的,好处是会自动清理掉过期的东西。
客户端缓存是HTTP的一个规范,用于在客户端缓存网页的,有时需要客户端缓存提高浏览速度,减轻服务器负担,但有时又需要在客户端禁用缓存,以避免客户端看到过期的信息
2、当客户端浏览器被关闭时,要如何移除Cache中的值。当用户是正常注销是可以做到,但是如果用户是直接关闭浏览器要如何实现呢?
<body onbeforeunload="window.open('clear.aspx','','top=4000')">

3、Page.Cache,Context.Cache,HttpRuntime.Cache是否引用同一个Cache对象
它们指的同一个对象,在某个请求其间,Page.Cache和HttpContext.Current.Cache是有效的,至于这2者的区别,一般是由你调用的地方决定的,如果在Page里,那么用Page.Cache,如果在global.asax或自己的函数里,那么用后者。

若需要在某个事件,比如基于Timer的处理函数里访问,没有HttpContext,可以考虑使用HttpRuntime.Cache。