asp.net 取消緩存相關問題說明
更新時間:2009年11月08日 23:17:46 作者:
asp.net 取消緩存相關問題說明,需要的朋友可以參考下。
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后面隨機的加一些沒用的參數(shù),比如:
http://xxx/xxx/xxx.jpg?p=xxx
IE是用過URL來控制緩存的,這樣就解決了
(4)web.config可以設置吧?
2。
(1)客戶端緩存和我們常在代碼中使用的Cache對象,有什么差別,當我們僅用了客戶端緩存時,他對我們在代碼中使用的Cache有沒有什么影響!
兩個完全不同的東西,Cache對象是給你自己緩存東西用的,好處是會自動清理掉過期的東西??蛻舳司彺媸荋TTP的一個規(guī)范,用于在客戶端緩存網(wǎng)頁的,有時候我們需要客戶端緩存提高瀏覽速度,減輕服務器負擔,但有時候我們又需要在客戶端禁用緩存,以避免客戶端看到過期的信息
(2)當客戶端瀏覽器被關閉時,要如何移除Cache中的值。當用戶是正常注銷是可以做到,但是如果用戶是直接關閉瀏覽器要如何實現(xiàn)呢?
<body onbeforeunload="window.open('clear.aspx','','top=4000')">
(3)1.Page.Cache,Context.Cache,HttpRuntime.Cache是否引用同一個Cache對象.
2.它們之間的區(qū)別是什么?
3.它們的使用場合是什么?
它們指的同一個對象,在某個請求其間,Page.Cache和HttpContext.Current.Cache是有效的,至于這2者的區(qū)別,一般是由你調用的地方?jīng)Q定的,如果在Page里,那么用Page.Cache,如果在global.asax或自己的函數(shù)里,那么用后者
但如果你需要在某個事件,譬如基于Timer的處理函數(shù)里訪問,因為其時沒有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后面隨機的加一些沒用的參數(shù),比如:
http://xxx/xxx/xxx.jpg?p=xxx
IE是用過URL來控制緩存的,這樣就解決了
(4)web.config可以設置吧?
2。
(1)客戶端緩存和我們常在代碼中使用的Cache對象,有什么差別,當我們僅用了客戶端緩存時,他對我們在代碼中使用的Cache有沒有什么影響!
兩個完全不同的東西,Cache對象是給你自己緩存東西用的,好處是會自動清理掉過期的東西??蛻舳司彺媸荋TTP的一個規(guī)范,用于在客戶端緩存網(wǎng)頁的,有時候我們需要客戶端緩存提高瀏覽速度,減輕服務器負擔,但有時候我們又需要在客戶端禁用緩存,以避免客戶端看到過期的信息
(2)當客戶端瀏覽器被關閉時,要如何移除Cache中的值。當用戶是正常注銷是可以做到,但是如果用戶是直接關閉瀏覽器要如何實現(xiàn)呢?
<body onbeforeunload="window.open('clear.aspx','','top=4000')">
(3)1.Page.Cache,Context.Cache,HttpRuntime.Cache是否引用同一個Cache對象.
2.它們之間的區(qū)別是什么?
3.它們的使用場合是什么?
它們指的同一個對象,在某個請求其間,Page.Cache和HttpContext.Current.Cache是有效的,至于這2者的區(qū)別,一般是由你調用的地方?jīng)Q定的,如果在Page里,那么用Page.Cache,如果在global.asax或自己的函數(shù)里,那么用后者
但如果你需要在某個事件,譬如基于Timer的處理函數(shù)里訪問,因為其時沒有HttpContext,那么用HttpRuntime.Cache
相關文章
asp.net 未能加載文件或程序集“XXX”或它的某一個依賴項。試圖加載格式不正確的程序。
運行asp.net后提示未能加載文件或程序集“XXX”或它的某一個依賴項。試圖加載格式不正確的程序。2011-07-07ASP.NET連接 Access數(shù)據(jù)庫的幾種方法
這篇文章主要介紹了ASP.NET連接 Access數(shù)據(jù)庫的幾種方法,每種方法都非常不錯,具有參考借鑒價值,需要的朋友一起學習吧2016-08-08MVC+EasyUI+三層新聞網(wǎng)站建立 驗證碼生成(三)
這篇文章主要為大家詳細介紹了MVC+EasyUI+三層新聞網(wǎng)站建立的第三篇,教大家如何生成驗證碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07SignalR Self Host+MVC等多端消息推送服務(一)
這篇文章主要為大家詳細介紹了SignalR Self Host+MVC等多端消息推送服務,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06把.net Core 項目遷移到VS2019 for MAC的方法步驟
這篇文章主要介紹了把.net Core 項目遷移到VS2019 for MAC的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03