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後面隨機的加一些沒用的參數,比如:
http://xxx/xxx/xxx.jpg?p=xxx

IE是用過URL來控制緩存的,這樣就解決了

(4)web.config可以設置吧?

2。

(1)客戶端緩存和我們常在代碼中使用的Cache對象,有什麼差別,當我們僅用了客戶端緩存時,他對我們在代碼中使用的Cache有沒有什麼影響!

兩個完全不同的東西,Cache對象是給你自己緩存東西用的,好處是會自動清理掉過期的東西。客戶端緩存是HTTP的一個規範,用於在客戶端緩存網頁的,有時候我們需要客戶端緩存提高瀏覽速度,減輕服務器負擔,但有時候我們又需要在客戶端禁用緩存,以避免客戶端看到過期的信息

(2)當客戶端瀏覽器被關閉時,要如何移除Cache中的值。當用戶是正常註銷是可以做到,但是如果用戶是直接關閉瀏覽器要如何實現呢?

<body οnbefοreunlοad="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

發佈了6 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章