2009-07-07 95 views
2

我正在創建一個網頁,每當我刷新或移動頁面時,它都會繼續重新加載緩存值。但我不希望它這樣做,因爲我正在使用動態數據(來自數據庫),所以我希望它在每次刷新時或者任何頁面處理完成時從數據庫重新加載值。 我並不是說只是清除瀏覽器緩存。我不希望我的最終用戶在每次使用我的應用程序時都必須轉到工具。有沒有辦法使Internet Explorer不緩存特定的網站?

+0

你使用什麼服務器端語言? – 2009-07-07 15:46:31

+0

我正在使用JavaScript與jQuery和Java Servlet與PL/SQL從數據庫檢索值。 – Corrine 2009-07-09 19:46:15

回答

3

如果您正在使用ASP或ASPX嘗​​試這些

<% Response.CacheControl = "no-cache" %> 
<% Response.AddHeader "Pragma", "no-cache" %> 
<% Response.Expires = -1 %> 

如果另一個地方這頭

<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="Expires" CONTENT="-1"> 
+0

我已經這樣做了,但它似乎沒有工作。它仍然從緩存中加載數據。 – Corrine 2009-07-09 18:39:10

6

設置以下HTTP標頭:

Cache-Control: no-cache 
Pragma: no-cache 

first one是對於HTTP 1.1,舊版客戶端爲second one

+0

這也不起作用。任何其他想法? – Corrine 2009-07-09 18:39:51

+0

@Corrine IE不太可能有這樣一個引人注目的漏洞,至今未被人注意。你確定你要發送正確的標題嗎?請發佈示例請求和答案。在沒有代碼的情況下,空白頁面上是否會出現相同的行爲?在http://stackoverflow.com?如果它沒有和stackoverflow(或演示頁面)的作品,只是比較你的頭和那些工作。 – phihag 2009-07-10 00:50:23

8

您是否檢查過在IE設置中啓用了「每次訪問時重新加載」?

Internet選項 - >常規 - >瀏覽歷史記錄 - >設置

檢查:每次訪問網頁

0

我有這個問題太,特別是在Internet Explorer 6,和我沒有它與Internet Explorer 8以下是東西排除這個可能性之前檢查列表:

  • 在工具-Internet選項 - Internet臨時文件 - 設置...設置檢查存儲網頁「,每個新版本訪問頁面「
  • 代理:如果您通過VPN連接,或者您的公司使用代理,請轉至工具 - Internet選項 - 連接選項卡,然後單擊LAN設置...或設置...按鈕以及您的VPN連接。只爲測試撤銷任何代理配置。
  • 嘗試將Sergio的建議放在ASPX頁面的最頂端。
  • 在IIS配置中,右鍵單擊Web應用程序,轉至屬性,然後單擊HTTP標題選項卡,並將內容過期設置爲立即過期。之後重新啓動IIS是一個好主意,只是爲了確保。

如果這些都不起作用,請嘗試不同版本的Internet Explorer。我有一個情況,我可以更改一個字段並單擊我的Web應用程序中的一個按鈕,它會重新加載正確保存的新字段,並更新數據庫。然後我進入後端應用程序並手動修改數據並保存一個新值。然後我回到我的web應用程序並單擊標題欄並按Enter鍵,導致它重新加載。在IE6中,刷新頁面顯示舊數據,但如果我在IE8中執行此操作,則會顯示新數據。在IE6中,我可以做兩件事來刷新它:清除臨時文件,或者通過將& a = 123添加到結尾或某處並按回車來修改URL字符串。我很清楚這是IE6中的一個錯誤(我使用6.0.3790.3959版本,它說SP2)。

0

避免緩存問題,我們在我們的工作地點做的是將隨機數或當前日期時間附加到請求的url。

由於IE通過確切的URL(包括查詢字符串)查找緩存,因此它找不到緩存的值並因此獲取新頁面。

0

你只是每次追加當前時間以毫秒爲單位的url.So頁面刷新改變清爽網址,該網址也與時間parameter.So緩存將不會更改生效..

​​
0

我現在正在使用動態頁面,並發現IE 10預覽版中無法進行刷新。我有以下的標頭(來自查看源代碼獲得):

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<meta http-equiv="Pragma" content="no-cache"> 
<meta http-equiv="Expires" content="-1"> 

我還檢查了IE瀏覽器本身的設置,改變了網址主頁(而不是由頁面使用的基本PHP調用)。只有當我第一次啓動它時,它纔會刷新頁面並顯示當前數據。我甚至可以關閉該選項卡,並在新選項卡中打開該URL,並調出緩存的數據。

@ developer747和@Sreeraj:我不得不使用隨機數伎倆更改URL爲數據的基本要求,因爲他們顯然是被緩存,擊敗使用XMLHttpRequest來檢索動態內容的目的第一名。 FireFox,Chrome,Safari和Opera不需要這個「竅門」。

相關問題