a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > JSP > 正文

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

2024-09-05 00:21:23
字體:
來源:轉載
供稿:網友
一個問題曾經困擾了很久,最近才找到自己覺得合理的解釋。

曾經用struts的多語言功能寫了一些東西,用的是locale這個對象(怎么做的就不講了,這里不是想講struts)。
在本地測試沒有問題,中文英文切換都OK。放到遠程服務器上自己試了也覺得ok。但之后不斷有人反映,有時候會很怪異的在英文的頁面環境下點擊鏈接后,居然又回到了中文的頁面環境!我第一個反應肯定覺得是cache的問題。然后仔細檢查了一次所有jsp頁面的html <meta> tag,確保了所有的no cache和expire屬性都設好了。然后要求大家都把IE的檢查屬性設置到“每次檢查”。在自己機子上點擊了無數遍,中文英文反復切換,似乎沒有問題了。但沒多久又有人投訴問題又出現了。
這里要介紹一個工具叫做httpwatch,是一個IE嵌入式的工具,用來檢測IE的所有HTTP通訊的。沒有了這個工具,我很難找到問題所在(當然可能有大牛一早知道,但誰都要經歷不知道到知道的過程)。
jsp頁面是通過例如以下的link來調用struts action切換語言環境的,?lang='zh'。但發現這條link被IE緩存了,也就是說很多時候服務器根本就沒有收到這個request。解決的辦法可以是在link后面加上一個random number或者timestamp,問題是很多這樣的link是hardcode到了flash里面(修改flash的代碼? ),所以這種辦法行不通。有趣的是,如果這個action僅僅是修改了session里面的locale屬性,而不通知front controller 去返回結果頁面給用戶的話(也就是 return null),這個是肯定會cache的。然而如果要返回一個頁面給用戶,這個cache的頻度會小很多。
最后推斷,問題出在了兩處地方。
1. IE的cache 也許是用url link + page result 來存儲和判斷是否應該使用cache,而不是真正發出request。在return null的那種情況,判斷的依據是url link + null。
2。在jsp頁面中,光是使用html的<meta> tag是無法禁止緩存的。一定要加上
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
有人肯定會說,這個跟html的tag設置沒有不同啊。的確,我也覺得,但實踐證明,沒有這幾句,光靠html tag不行。
所以當action會返回頁面時,有以下這兩種情況:
a,返回的頁面沒有寫上上面的禁止cache的語句(或者只寫了html tag)。IE存儲的是URL link + page result(cache eabled)。這也就是導致了之前為什么還會有cache的原因
b,返回的頁面寫上了禁止cache語句 。IE存儲的是URL link + page result(cache disabled)。這樣才能夠實現到我們想要的目的。每次都會真正的發出request。
PS:IE的檢查設置一點都信不過,盡管調到最高級別,如果沒有上述措施,一樣會cache。而且,你總不能告訴全世界的用戶為了看你的網站去修改一下IE吧。(其他瀏覽器沒有試驗過)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 草草网址| 日韩aaa久久蜜桃av | 欧美一区二区三区 | 日本精品视频网站 | 久久国产精品毛片 | 91久久九色| 国产精品久久久久久久久久久久久久 | 免费在线播放av | 国产精品一区二区在线看 | 中文字幕天天操 | 一级片在线观看 | av在线播放一区二区 | 久久艹精品视频 | 人人超碰在线观看 | 欧美日韩一区二区三区在线观看 | 午夜精品一区二区三区在线 | www一区二区 | av网站观看 | 欧美成人一区二区 | 五月天婷婷国产精品 | 激情欧美日韩一区二区 | 亚洲精品一区二区三区蜜桃下载 | 国产日产久久欧美清爽 | 午夜激情视频 | 欧美二区在线 | 国产一级一级国产 | 综合国产 | 99精品在线免费 | 成人免费观看49www在线观看 | 亚洲成人一区在线观看 | www.一区二区三区 | 日韩1区 | 欧美成人精品一区二区男人看 | 欧洲一区二区三区免费视频 | 在线观看日韩 | 高清一区二区三区视频 | 国产成人精品白浆久久69 | 久久精品 | 国产精品极品美女在线观看免费 | 亚洲在线视频 | 日韩在线影视 |