最近在做asp.net的開發,用到gridview裡面的操作,但是在執行更新操作後即使重新進行資料繫結也還是在彈出查看和編輯視窗時顯示原有資料,原來還以為是沒有更新徹底,但是最後才發現是緩衝的問題。現在把解決方案貼上,共用。
取消緩衝 用戶端取消 <html> <head> <meta http-equiv="Expires" CONTENT="0"> <meta http-equiv="Cache-Control" CONTENT="no-cache"> <meta http-equiv="Pragma" CONTENT="no-cache"> </head> 伺服器具端取消: 伺服器端: 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.aspx?......&time=date().toString() IE是用過URL來控制緩衝的,這樣就解決了,但是呢,有時候這個方法會失效,具體情況具體分析啦。 |