我讀到,當你沒有訪問到Web服務器的頭,你可以使用關閉緩存:使用<meta>標籤關閉所有瀏覽器中的緩存?
<meta http-equiv="Cache-Control" content="no-store" />
但我也看了,這並不在IE瀏覽器的一些版本。是否有任何一組<meta>標籤會關閉所有瀏覽器中的緩存?
我讀到,當你沒有訪問到Web服務器的頭,你可以使用關閉緩存:使用<meta>標籤關閉所有瀏覽器中的緩存?
<meta http-equiv="Cache-Control" content="no-store" />
但我也看了,這並不在IE瀏覽器的一些版本。是否有任何一組<meta>標籤會關閉所有瀏覽器中的緩存?
該列表僅僅是不同技術的例子,它不是針對直接 插入。如果被複制,第二個將覆蓋第一個,並且第四個將覆蓋第三個,因爲聲明AND聲明失敗並且W3C驗證程序失敗。每個http-equiv聲明最多可以有一個 ;雜注,緩存控制和 到期。使用現代最新瀏覽器時,這些內容完全過時。無論如何,在IE9之後。如果有的話,Chrome和Firefox特別不能像你所期望的那樣工作。
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
緩存標頭在meta元素中不可靠;其中之一, 網站和用戶之間的任何網絡代理將完全忽略他們的 。你應該總是使用一個真正的HTTP標頭,例如 Cache-Control和Pragma。
第三個標籤在小寫字母中沒有特殊原因嗎? – 2009-10-12 01:25:20
沒有特別的理由。雖然你必須考慮其他的東西,比如你的DOCTYPE聲明,或者使用HTML和XHTML。 – 2009-10-14 05:53:51
更多解釋會很好。爲什麼重複的緩存控制和到期?爲什麼你需要所有這些? 1980年有什麼特別的? pragma之間有什麼區別:no-cache和cache-control:no-cache?更多的解釋會很好。 – 2012-09-10 23:36:46
附註是你最好的選擇:
<meta http-equiv="Pragma" content="no-cache">
...這是舊的,所以你的建議是,這是因爲在較新的實現中,這通常會被解釋爲緩存頭緩存控制:無緩存。所以實際上你會更好地使用更現代的 – 2013-09-14 21:53:47
它不會在IE5工作,但是這不是一個大問題。
但是,緩存標頭在元素中不可靠;首先,網站和用戶之間的任何網絡代理都會完全忽略它們。你應該總是使用一個真正的HTTP頭來處理諸如Cache-Control和Pragma之類的頭文件。
@bobince,謝謝!如果我對web代理有任何問題,我會記住這一點,但是我的「團隊」使我完全在前端,並且不允許我訪問頭文件。 – leeand00 2009-08-27 14:02:40
即使這是在2009年編寫的,提高IE5兼容性也是無關緊要的。 – 2015-04-09 18:37:30
也不能在IE2中工作,哈哈。 – 2016-07-19 13:03:02
當重複相同的服務調用(長輪詢)時,我注意到一些服務調用的緩存問題。添加元數據沒有幫助。一種解決方案是通過timestamp
以確保ie
認爲它是一個不同的http
服務請求。這爲我工作,所以增加一個服務器端腳本代碼片段自動更新此標記不會傷害:
<meta http-equiv="expires" content="timestamp">
這真的是巧妙的工作也在鉻 – Geomorillo 2017-02-06 13:47:58
嘗試使用
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
爲什麼要嘗試它?你可以解釋嗎? – 2015-07-24 19:55:36
一些解釋會很好... – 2017-10-20 06:28:03
它不適用於Chrome。 – 2017-11-05 12:01:57
這是一個偉大的案例研究的鏈接對行業內控制緩存的誤解。
http://securityevaluators.com/knowledge/case_studies/caching/
總之,根據本文中,僅Cache-Control: no-store
由鉻,Firefox和IE的認可。 IE可以識別其他控件,但Chrome和Firefox不支持。
我發現Chrome對Cache-Control的反應更好:no-cache(之後是100%的條件請求)。 「無存儲」有時從緩存加載,甚至沒有嘗試有條件的請求。 Firefox對「無存儲」做出了更好的響應,但如果您立即重新加載後綴,有時仍會從緩存中加載。真是一團糟! – ianbeks 2016-05-20 12:45:46
bobince和dpb的答案組合是你最好的選擇。涵蓋所有基地。 – nickf 2009-08-27 13:43:59
http://www.i18nguy.com/markup/metatags.html在這個網站上寫入更好的停用HTTP緩存,以便該網站不存儲在中間服務器上。認爲它可能有助於某人。 – Bodo 2015-05-28 06:25:18
對於那些掙扎着後退按鈕和「重新打開關閉標籤」緩存,因爲我是,從另一個問題看看[這個答案](http://stackoverflow.com/a/19196020/993683)。這是hacky,但沒有基於頭文件的解決方案爲我工作,併爲我的目的這個小的JS片段是偉大的(易於轉換爲普通的JS)。 – JoeRocc 2017-01-31 09:12:53