方法一:導航時用伺服器端的Response.Redirect方法,或者用前端得window.location.replace方法。
方法二:禁用ASP.NET頁面緩衝。
在必要的時候我還是推薦方法二的。因為我們做開發的不能控制瀏覽器的設定。使用者如果把IE設定為從不檢查更新緩衝的問題則不好避免,所以還是用方法二,讓IE的臨時檔案夾不存在分頁檔。
另外,是否禁用頁面緩衝要根據實際情況來說,起初我認為頁面緩衝只是緩衝在伺服器,後來看了一篇blog
發現緩衝的意義還是很大的。在很多情況下可以大大減小伺服器的壓力。只不過開發過程中要多多從需求出發,不能盲目的設定什麼屬性。
直接在瀏覽器中禁止
代碼如下 |
複製代碼 |
<html> <head> <meta http-equiv="Expires" CONTENT="0"> <meta http-equiv="Cache-Control" CONTENT="no-cache"> <meta http-equiv="Pragma" CONTENT="no-cache"> </head> |
asp.net中禁止頁面緩衝
伺服器端
代碼如下 |
複製代碼 |
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(); } |
Aspx頁面
代碼如下 |
複製代碼 |
<%@ OutPutCache Location="None"%> |
C#中禁止cache的方法!
代碼如下 |
複製代碼 |
Response.Buffer=true; Response.ExpiresAbsolute=System.DateTime.Now.AddSeconds(-1); Response.Expires=0; Response.CacheControl="no-cache"; |