2009-10-15 46 views
0

這可能是我忽略或不知道的一些「最佳實踐」的東西,所以請容易在我身上。asp.net網站計算機文件緩存問題

我有一個asp.net網站,用我的數據庫表中的列填充gridview。其中一列被處理成另一臺服務器上的文檔文檔的鏈接。問題是,如果用戶單擊單詞文檔以查看它,然後在遠程服務器上更新該文檔,則用戶無法訪問已更改的文檔,直到其瀏覽器緩存被清除,並且它被迫出去到網絡當鏈接被點擊時抓住一個新的副本。

基本上我想以某種方式強制機器永遠不要使用文檔的緩存副本,但總是去網絡獲取最新的副本。

獎金問題:通過將文檔存儲在SharePoint中以某種方式處理該問題會更好嗎?

更新:在我的代碼隱藏中使用Response.Cache.SetCacheability(HttpCacheability.NoCache);我現在已經解決了FireFox中的問題,但IE8很奇怪。如果我更新了文檔,然後左鍵單擊它,它會在IE窗口中顯示文檔doc,而不進行更改。但是,如果我進行了更改,請保存它們,然後中間單擊該文檔以打開一個新選項卡,該文檔將反映這些更改。我主要在那裏...

回答

2

嘗試添加一些額外的數據到鏈接。這是一個使用js的例子;如果你正在構建url服務器端,它應該基本相同:

var url =「http://www.mydomain.com/mywordfile.doc?ts=」+(new Date())。getTime();

這將迫使url每次都有不同的查詢url,這(理論上)應該強制瀏覽器重新請求並重新下載它。

1

偶然你是否看到這與IE8具體?我們已經看到它顯示了緩存之前不存在的問題。

通常情況下,它可以通過幾個步驟清理:明確告訴瀏覽器不要通過HTTP標頭進行緩存,並且會立即使頁面過期。谷歌的「雜注無緩存」標題,通常有幾條不同的路線需要添加,以涵蓋所有瀏覽器。

+0

實際上,所有瀏覽器都發生這種情況,直到現在我還沒有真正處理它。我的同事使用IE7和我的老闆,我使用Firefox,同樣的問題。感謝您的指導。 – somacore 2009-10-15 14:27:10