asp緩存類
1. ASP.NET幾種清除頁面緩存的方法
在asp.net中使用模式dialog時,你會發現每次打開的頁面都是相同的內容,頁面內容並沒有刷新,這是緩存的原因造成的,
解決方法如下:
第一種是ASP.NET清除頁面緩存
Response.Buffer
=
true;
Response.ExpiresAbsolute
=
System.DateTime.Now.AddSeconds(-1);
Response.Expires
=
0;
Response.CacheControl
=
"no-cache";
Response.AddHeader("Pragma",
"No-Cache");
第二種是HTML方法
最後一種是在在頁面中禁用緩存
在web開發中合理使用緩存可以有效的提高網站的性能,但是在某些場合下因為緩存的存在會帶來很多的問題。
例如:因為緩存的存在會造成重復提交數據的問題,驗證碼圖片不能正確顯示的問題
,等等。這個時候我們就要禁用頁面緩存的功能。
我們常用的做法是發送一個no-cache的指令,但是實際使用過程中我們發現,這個指令對IE是有效的,但是對Firefox卻沒有效,這是因為,使用該指令Firefox不緩存HTTPS
pages
但是還是會緩存HTTP
pages
,這是Firefox的一個BUG,解決的辦法很簡單,就是使用no-store代替no-cache,同時發送no-store和no-cache指令
ASP.net中的處理方法,在不需要緩存的頁面中添加如下代碼
2. asp中如何清除瀏覽器緩存
<%
Response.Buffer =True
Response.ExpiresAbsolute =Now() - 1
Response.Expires=0
Response.CacheControl="no-cache"
%>
可以讓瀏覽器不緩存,但不能主動讓瀏覽器清除緩存。
3. ASP如何清除頁面緩存
先說方法,直接在頁頭(注意是頁頭)加下如下代碼:
Response.Buffer=True
Response.ExpiresAbsolute=Now()-1
Response.Expires=0
Response.CacheControl="no-cache"
Response.AddHeader"Pragma","no-Cache"
接下來我們了解一下ASP輸出對象response的以下幾個屬性:
ExpiresAbsolute :屬性指定緩存於瀏覽器中的頁的到期日期和時間。
Expires: 屬性指定了在瀏覽器上緩沖存儲的頁距過期還有多少時間。如果用戶在某個頁過期之前又回到此頁,就會顯示緩沖區中的版本
CacheControl:決定代理伺服器是否能緩存 ASP 生成的輸出
那結合以上三個屬性,我們在頁頭加上這樣的代碼:
response對象還有一個屬性:
Buffer 屬性指示是否緩沖頁輸出。當緩沖頁輸出時,只有當前頁的所有伺服器腳本處理完畢或者調用了 Flush 或 End 方法後,伺服器才將響應發送給客戶端。
伺服器將輸出發送給客戶端後就不能再設置 Buffer 屬性。因此,應該在 .asp 文件的第一行調用 Response.Buffer