ASP.NET中清除缓存

ASP.NET中清除缓存

ASP.NET中清除缓存

(1)<htmlxmlns="http://www.w3.org/1999/xhtml">

<%

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();  

%>

(2)<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的缓存是与参数相关的,如果参数不同就不会使用缓存,而会重新生成页面,每次都传一个随机的参数就可以避免使用缓存。这个仅适用于asp&asp.net。

 

ASP.NET取消缓存

(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 

publicPageBase() {} 

protected override OnLoad( EventArgs e ) { 

Response.Cache.SetNoStore(); 

base.OnLoad(); 

     } 

 

关于缓存的一些问题:

(1)客户端缓存和我们常在代码中使用的Cache对象,有什么差别,当我们仅用了客户端缓存时,他对我们在代码中使用的Cache有没有什么影响?

这是两个完全不同的东西,Cache对象是给你自己缓存东西用的,好处是会自动清理掉过期的东西。客户端缓存是HTTP的一个规范,用于在客户端缓存网页的,有时候我们需要客户端缓存提高浏览速度,减轻服务器负担,但有时候我们又需要在客户端禁用缓存,以避免客户端看到过期的信息

 

(2)当客户端浏览器被关闭时,要如何移除Cache中的值。当用户是正常注销是可以做到,但是如果用户是直接关闭浏览器要如何实现呢?

<bodyonbeforeunload="window.open('clear.aspx','','top=4000')">

 

(3)Page.Cache,Context.Cache,HttpRuntime.Cache是否引用同一个Cache对象?它们之间的区别是什么?它们的使用场合是什么?

它们指的同一个对象,在某个请求其间,Page.Cache和HttpContext.Current.Cache是有效的,至于这两者之间的区别,一般是由你调用的地方决定的,如果在Page里,那么用Page.Cache,如果在global.asax或自己的函数里,那么用后者,但如果你需要在某个事件,譬如基于Timer的处理函数里访问,因为其时没有HttpContext,那么用HttpRuntime.Cache。

你可能感兴趣的:(ASP.NET中清除缓存)