今天從我的老闆那裏得到了一個非常有趣的。我們有一個使用Microsoft.Reporting.WebForms.ReportViewer組件的asp網站,一切都非常可愛。但是,如果瀏覽器(目前使用IE9進行測試)設置爲始終使用緩存頁面(工具 - > Internet選項 - >常規選項卡 - >瀏覽歷史 - >設置 - >檢查更新版本的存儲頁面 - >從不)對於一些被遺棄的原因,瀏覽器總是使用緩存的報告。微軟,你可以用他們做什麼。報告服務|停止緩存
需要說明的是,報告中有一些參數由用戶輸入,它在第一次正確運行。如果用戶隨後更改參數並再次單擊查看報告,則屏幕會閃爍並顯示所有內容,就好像它正在生成新報告一樣,但會顯示相同的報告(即,原始參數將再次用於生成報告而不是新的那些)。參數輸入的文本框(rdl的一部分)保存正確的值,它只是報告本身不更新它們。
我嘗試添加下面的JavaScript,其承載的ReportViewer控件的頁:
<%
Response.Cache.SetNoStore();
Response.Expires = 0;
Response.CacheControl = "no-cache";
%>
和下面的C#託管頁面的Page_Load中功能:
this.Response.Cache.SetNoStore();
this.Response.Expires = 0;
this.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
this.Response.AddHeader("pragma", "no-cache");
this.Response.AddHeader("cache-control", "private");
this.Response.CacheControl = "no-cache";
沒有成功。有誰知道如何強制瀏覽器更新,儘管瀏覽器的歷史設置?
真正的問題是誰在正確的思想使用'檢查存儲頁面的更新版本 - >從不' – Earlz 2011-06-13 16:59:05