asp.net 取消緩衝相關問題說明_實用技巧
來源:互聯網
上載者:User
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後面隨機的加一些沒用的參數,比如:
yun_qi_img/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