2010-05-03 164 views
42

如何在IE8中禁用緩存? 我們正在做Javascript開發並在IE8中測試它,但是我們必須在每次更改Javascript文件時清除緩存。如何禁用InternetExplorer中的緩存8

+1

如果您遇到問題,用戶可能也會遇到問題。最好使用其中一個未接受的答案來強制從服務器進行刷新。 – user420667 2013-10-16 20:30:30

回答

65

轉到Internet選項。在通用選項卡下,在瀏覽歷史點擊設置。選擇「每次訪問網頁」單選按鈕。

這不會「禁用」緩存本身,但它應該解決您的底層問題 - 每次都應該重新加載JS文件。

+0

這項工作會100%的時間嗎? – portoalet 2010-05-03 03:06:28

+0

這不是我能保證的,你只需要測試它。 – EMP 2010-05-03 03:58:09

+6

以我的經驗,這不適用於包含JavaScript的嵌套頁面或控件。 – 2011-03-09 21:38:35

16

Ctrl + F5應該導致整個頁面刷新,包括所有緩存的javascript。

有時候,你仍然需要清除緩存,因爲即使Ctrl + F5也不行,因爲無法理解的原因,IE甚至無法在100%的時間內「刷新」。

+1

hm這對發展是相當危險的..然後 – portoalet 2010-05-03 03:05:43

11

如果失敗,查詢字符串一個隨機參數將做到這一點:?

的index.html A = 346456

3

按Ctrl ++德爾打開清除隱私數據對話框(或從安全菜單中選擇它)。取消選中除前兩項之外的所有內容,只清除緩存。

儘管如此,您不必清除緩存。如果您通過Web服務器(例如本地運行的IIS)訪問您的js文件,則普通高速緩存控制機制應該有效。如果他們沒有,Ctrl + F5通常可以解決問題。

+0

問題是,在生產中,我們希望瀏覽器使用緩存,因爲javascripts很大。你在談論哪種緩存控制機制? – portoalet 2010-05-03 03:04:53

+0

我在談論開發和測試。 HTTP的'Last-Modified','If-Modified-Since'和'ETag'頭文件讓瀏覽器和服務器判斷一個文件是否被修改,如果有,更新瀏覽器的緩存版本。 – josh3736 2010-05-03 03:41:05

+0

太棒了,工作!我的問題是CSS改變時沒有渲染。 'Ctrl + Shift + Del'是***不工作,但是'Ctrl + F5'最終清除了緩存。 – 2013-07-05 14:17:10

5

爲了設置關閉瀏覽器緩存。按照下面的說明:

MS IE

  1. 從菜單中選擇 「工具」 爲IE5 或 「視圖」 IE4
  2. 選擇 「Internet選項」,在 「Internet臨時文件」
  3. 部分點擊「設置」
  4. 選擇「每次訪問該頁面」爲「檢查更新版本的存儲頁面」 保存設置 我希望這可以幫助請檢查
+1

對於IE8和IE9,請轉到「Internet選項」 - >「常規」選項卡。在「瀏覽歷史記錄」部分中,單擊「設置」按鈕,然後在「Internet臨時文件」部分下選擇「每次訪問網頁」,然後單擊「確定」。 – furman87 2012-01-06 21:06:54

+0

與IE 10(桌面版)相同。 – BrainSlugs83 2012-10-12 18:11:20

10

加載JavaScript這種方式。

<html> 
... 
<script type="text/javascript"> 
document.write('<script src="yourscript.js?'+Math.random()+'"></script>'); 
</script> 
... 
</html> 

編輯:如果這不是顯而易見的,因爲很快你就會進入生產刪除此代碼!

+2

只有在開發的時候才能做到這一點,因爲緩存可以加快優秀瀏覽器的頁面加載速度。但是,這樣做會使得難以找回,所以也許可以使用一個變量。 – 2012-08-12 07:58:20

+0

它真的看起來像黑客,可以很容易地忘記將其刪除,然後投入生產。 – 2013-12-03 04:51:29

0

也許更簡單的方法不讓用戶刷新瀏覽器只是重命名js文件(和css)。這對我來說很有效...因爲服務器在.js文件之後不喜歡隨機數

+1

另一個缺點是隻是在文件末尾添加一個隨機*查詢字符串*(即「http://mysite.com/myscript.js?random=B6646B155E」,其中random是每次不同的值 - 服務器應該忽略它,但瀏覽器將避免使用緩存版本。) 當你想強制所有的客戶端獲得最新的腳本(不僅僅是你的開發機器)和B)時,這是非常有用的。有權訪問服務器設置(例如頁面過期時)。 – BrainSlugs83 2012-10-12 18:09:18

2

如果您的JavaScript文件是從子目錄提供exclusivley,那麼您可以啓用該目錄的即時內容到期在IIS中。我最近有這個問題,從一個子目錄提供內容,這是我找到的最快,最簡單的解決方案。

+1

這聽起來像是最好的解決方案,它適用於任何服務器(不僅僅是IIS)。 – 2012-06-29 05:41:19

1

打開IE調試工具(F12),在菜單上選擇Cache,然後選擇始終從服務器刷新。這確實意味着您需要保持調試工具的打開狀態。

4

命中的「Fn F12」打開開發者工具

單擊緩存

選擇「從服務器始終刷新」

刷新應該清除緩存,但也有快速的每次從緩存菜單訪問緩存清除或在開發工具打開時處於活動狀態的快捷方式。

*注意 - 您必須保持開啓工具窗口打開,不必先行,但必須保持打開狀態,以便緩存保持禁用狀態。