IE6非同步請求快取導致的亂碼問題

2021-06-14 12:33:47 字數 400 閱讀 8471

近日在公升級kissy的過程中,在ie6下遇到乙個很奇怪的問題:

頁面編碼是gbk,ji和css檔案是utf-8的,當使用者要使用某些功能時頁面會彈出迷你登入框提示使用者登入,會傳送非同步請求,獲得登入框的模板,編碼是和js一致的(utf-8),第一次是ok的,但當重新整理頁面第二次彈出登入框時,問題來了,從介面返回的中文亂碼了。用fiddler檢視,發現第二次,ie6沒有發非同步請求獲得資料,而是從快取中得到的。

解決方案有兩種:

1. 給非同步請求加上時間戳,確保每次發出請求,從伺服器獲得新資料。這種方法比較容易實施,也不會影響功能,但因為不快取請求,為伺服器增加了不必要的壓力,降低了效能,需要結合應用場景選擇。

2. 把非同步請求的介面返回的資料的中文用unicode處理,是比較安全實用的方法,無論將來怎麼變化,都不會產生編碼問題。

Ajax與IE6快取問題

今天,有同事發現相關業務資料修改後,在ie6下還是顯示修改前的值。但在其他瀏覽器和ie7 ie8下,沒有這個問題。原因 用ajax請求時,如果出現重複的url,瀏覽器不會向伺服器傳送請求,而是根據之前相同的url請求結果返回。原因就在於之前的請求及結果已經儲存在了快取裡,如果遇到相同url時,結果是...

IE6的base標籤導致頁面結構大混亂

這是乙個非常隱秘也是非常強大的bug,我真不知微軟的ie開發人員是怎麼搞出來的。此bug的觸發條件是,當頁面存在乙個自閉合的base節點,它就會把其 下面 所有的元素都拷到它內部。這裡的下面非childnodes,children所能描述,它連body節點都能編入其中。ie 複製節點 bug 執行 ...

IE6的重影問題

在做div時會碰到文字自動重複的現象,一系列元素的下端的文字會重複出現。這種現象只會在ie6中出現,在ie7和火狐中沒有此現象。問題原因以及解決方法 原因 是注釋造成的文字溢位,而且只有ie6才有這個bug,而溢位文字的字數 注釋的條數 2 1。bug與注釋文字的位置 區塊的浮動以及文字區塊的固定寬...