asp.net 取消缓存相关问题说明
程序员文章站
2024-03-09 16:26:23
1。 取消缓存 (2)客户端取消
1。 取消缓存
(2)客户端取消
<html>
<head>
<meta http-equiv="expires" content="0">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="pragma" content="no-cache">
</head>
(3)服务器具端取消:
服务器端:
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();
}
}
最简单的办法 :-)
学csdn的这个论坛,在url后面随机的加一些没用的参数,比如:
http://xxx/xxx/xxx.jpg?p=xxx
ie是用过url来控制缓存的,这样就解决了
(4)web.config可以设置吧?
2。
(1)客户端缓存和我们常在代码中使用的cache对象,有什么差别,当我们仅用了客户端缓存时,他对我们在代码中使用的cache有没有什么影响!
两个完全不同的东西,cache对象是给你自己缓存东西用的,好处是会自动清理掉过期的东西。客户端缓存是http的一个规范,用于在客户端缓存网页的,有时候我们需要客户端缓存提高浏览速度,减轻服务器负担,但有时候我们又需要在客户端禁用缓存,以避免客户端看到过期的信息
(2)当客户端浏览器被关闭时,要如何移除cache中的值。当用户是正常注销是可以做到,但是如果用户是直接关闭浏览器要如何实现呢?
<body onbeforeunload="window.open('clear.aspx','','top=4000')">
(3)1.page.cache,context.cache,httpruntime.cache是否引用同一个cache对象.
2.它们之间的区别是什么?
3.它们的使用场合是什么?
它们指的同一个对象,在某个请求其间,page.cache和httpcontext.current.cache是有效的,至于这2者的区别,一般是由你调用的地方决定的,如果在page里,那么用page.cache,如果在global.asax或自己的函数里,那么用后者
但如果你需要在某个事件,譬如基于timer的处理函数里访问,因为其时没有httpcontext,那么用httpruntime.cache
(2)客户端取消
<html>
<head>
<meta http-equiv="expires" content="0">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="pragma" content="no-cache">
</head>
(3)服务器具端取消:
服务器端:
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();
}
}
最简单的办法 :-)
学csdn的这个论坛,在url后面随机的加一些没用的参数,比如:
http://xxx/xxx/xxx.jpg?p=xxx
ie是用过url来控制缓存的,这样就解决了
(4)web.config可以设置吧?
2。
(1)客户端缓存和我们常在代码中使用的cache对象,有什么差别,当我们仅用了客户端缓存时,他对我们在代码中使用的cache有没有什么影响!
两个完全不同的东西,cache对象是给你自己缓存东西用的,好处是会自动清理掉过期的东西。客户端缓存是http的一个规范,用于在客户端缓存网页的,有时候我们需要客户端缓存提高浏览速度,减轻服务器负担,但有时候我们又需要在客户端禁用缓存,以避免客户端看到过期的信息
(2)当客户端浏览器被关闭时,要如何移除cache中的值。当用户是正常注销是可以做到,但是如果用户是直接关闭浏览器要如何实现呢?
<body onbeforeunload="window.open('clear.aspx','','top=4000')">
(3)1.page.cache,context.cache,httpruntime.cache是否引用同一个cache对象.
2.它们之间的区别是什么?
3.它们的使用场合是什么?
它们指的同一个对象,在某个请求其间,page.cache和httpcontext.current.cache是有效的,至于这2者的区别,一般是由你调用的地方决定的,如果在page里,那么用page.cache,如果在global.asax或自己的函数里,那么用后者
但如果你需要在某个事件,譬如基于timer的处理函数里访问,因为其时没有httpcontext,那么用httpruntime.cache