主頁(yè) > 知識(shí)庫(kù) > IE cache緩存 所帶來的問題收藏

IE cache緩存 所帶來的問題收藏

熱門標(biāo)簽:福建電銷貓機(jī)器人收費(fèi) 汝南縣地圖標(biāo)注app 外呼直播語音系統(tǒng) 智能電話機(jī)器人銷售話術(shù) 湖北地圖標(biāo)注公司 地圖標(biāo)注專業(yè)和非專業(yè) 山東ai外呼電銷機(jī)器人好用嗎 甘肅銷售電銷機(jī)器人公司 四川正規(guī)外呼系統(tǒng)軟件
曾經(jīng)用struts的多語言功能寫了一些東西,用的是locale這個(gè)對(duì)象(怎么做的就不講了,這里不是想講struts)。
在本地測(cè)試沒有問題,中文英文切換都OK。放到遠(yuǎn)程服務(wù)器上自己試了也覺得ok。但之后不斷有人反映,有時(shí)候會(huì)很怪異的在英文的頁(yè)面環(huán)境下點(diǎn)擊鏈接后,居然又回到了中文的頁(yè)面環(huán)境!我第一個(gè)反應(yīng)肯定覺得是cache的問題。然后仔細(xì)檢查了一次所有jsp頁(yè)面的html meta> tag,確保了所有的no cache和expire屬性都設(shè)好了。然后要求大家都把IE的檢查屬性設(shè)置到“每次檢查”。在自己機(jī)子上點(diǎn)擊了無數(shù)遍,中文英文反復(fù)切換,似乎沒有問題了。但沒多久又有人投訴問題又出現(xiàn)了。
這里要介紹一個(gè)工具叫做httpwatch,是一個(gè)IE嵌入式的工具,用來檢測(cè)IE的所有HTTP通訊的。沒有了這個(gè)工具,我很難找到問題所在(當(dāng)然可能有大牛一早知道,但誰都要經(jīng)歷不知道到知道的過程)。
jsp頁(yè)面是通過例如以下的link來調(diào)用struts action切換語言環(huán)境的,http://localhost/xxx/langAction.do?lang='zh'。但發(fā)現(xiàn)這條link被IE緩存了,也就是說很多時(shí)候服務(wù)器根本就沒有收到這個(gè)request。解決的辦法可以是在link后面加上一個(gè)random number或者timestamp,問題是很多這樣的link是hardcode到了flash里面(修改flash的代碼? ),所以這種辦法行不通。有趣的是,如果這個(gè)action僅僅是修改了session里面的locale屬性,而不通知front controller 去返回結(jié)果頁(yè)面給用戶的話(也就是 return null),這個(gè)是肯定會(huì)cache的。然而如果要返回一個(gè)頁(yè)面給用戶,這個(gè)cache的頻度會(huì)小很多。
最后推斷,問題出在了兩處地方。
1. IE的cache 也許是用url link + page result 來存儲(chǔ)和判斷是否應(yīng)該使用cache,而不是真正發(fā)出request。在return null的那種情況,判斷的依據(jù)是url link + null。
2。在jsp頁(yè)面中,光是使用html的meta> tag是無法禁止緩存的。一定要加上
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
有人肯定會(huì)說,這個(gè)跟html的tag設(shè)置沒有不同啊。的確,我也覺得,但實(shí)踐證明,沒有這幾句,光靠html tag不行。
所以當(dāng)action會(huì)返回頁(yè)面時(shí),有以下這兩種情況:
a,返回的頁(yè)面沒有寫上上面的禁止cache的語句(或者只寫了html tag)。IE存儲(chǔ)的是URL link + page result(cache eabled)。這也就是導(dǎo)致了之前為什么還會(huì)有cache的原因
b,返回的頁(yè)面寫上了禁止cache語句 。IE存儲(chǔ)的是URL link + page result(cache disabled)。這樣才能夠?qū)崿F(xiàn)到我們想要的目的。每次都會(huì)真正的發(fā)出request。
PS:IE的檢查設(shè)置一點(diǎn)都信不過,盡管調(diào)到最高級(jí)別,如果沒有上述措施,一樣會(huì)cache。而且,你總不能告訴全世界的用戶為了看你的網(wǎng)站去修改一下IE吧。(其他瀏覽器沒有試驗(yàn)過)
您可能感興趣的文章:
  • 設(shè)置默認(rèn)Ajax操作cache and error
  • jQuery ajax cache緩存問題
  • IE圖片緩存document.execCommand("BackgroundImageCache",false,true)
  • ajax的 IE cache 相關(guān)問題解決

標(biāo)簽:吳忠 昌都 南充 梅州 白銀 黔東 臨沂 肇慶

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《IE cache緩存 所帶來的問題收藏》,本文關(guān)鍵詞  cache,緩存,所,帶來,的,問題,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《IE cache緩存 所帶來的問題收藏》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于IE cache緩存 所帶來的問題收藏的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章