iframe緩存刷新問題

頁面中嵌入iframe出現了緩存,帶來的頁面刷新問題

工作中碰到的問題

包含iframe的頁面,iframe中存在登陸驗證的問題。當通過iframe已經完成了登陸,此時iframe對應的服務異常上下電又恢復了服務時,這時再刷新整個頁面,即使用新的登陸驗證信息依然無法驗證通過。
通過對iframe裏請求的分析發現,刷新後請求頭依然使用的是之前的驗證信息(token和session)。

一般的做法

  1. 前端:在iframe指向的頁面地址後綴添加一個時間戳。確保每次加載時,讓瀏覽器知道它是最新的頁面,避免緩存。
var ts = new Date().getTime()
<iframe src="http://xxx/xxx/xxx.html?_" + ts></iframe>
  1. 服務端:修改Response的頭信息
Header:
"Cache-Control": "no-cache"

分析根源

  1. 卸載頁面前,觀察iframe指向頁面中的session和cookie殘留情況
window.location.href = "about:blank"

查看瀏覽器本地的cookie和session情況

  1. 在卸載頁面前,調用相應的方法清除頁面卸載後殘留的cookie和session
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章