1. 怎麼處理iframe緩存的問題
JSP中,添加緩存的控制語句
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", -10);
2. vue3使用 keep-alive對iframe進行緩存
使用keep-alive緩存不了iframe界面原因
【1】原理:Vue 的緩存機制並不是直接存儲 DOM 結構,而是將 DOM 節點抽象成了一個個 VNode節點。因此,Vue 的 keep-alive 緩存也是基於 VNode節點 而不是直接存儲 DOM 節點。在需要渲染的時候從Vnode渲染到真實DOM上。
【2】參數:Keep-alive 組件提供了 include 和 exclude 兩個屬性,允許組件有條件的進行緩存。
include: 字元串或正則表達式。只有匹配的組件會被緩存。
exclude: 字元串或正則表達式。任何匹配的組件都不會被緩存。
【3】Keep-alive 組件提供了兩個生命鉤子函數,分別是 activated 和 deactivated 。
activated :當頁面存在緩存的時候執行該函數。
deactivated :在頁面結束時觸發該方法,可清除掉滾動方法等緩存。
iframe頁里的內容並不屬於節點的信息,所以使用keep-alive依然會重新渲染iframe內的內容。而且iframe每一次渲染就相當於打開一個新的網頁窗口,即使把節點保存下來,在渲染時iframe頁還是刷新的。
不使用 keep-alive ,因為vnode原理不適用。直接把打開過得iframe中的dom保存下來。通過v-show顯示隱藏
iframeComponentsArray這個數組是打開過的iframe頁面數組
3. iframe子頁面訪問過後相應js 緩存在瀏覽器,怎麼不緩存
這兩天遇到一個很奇怪的問題,一個頁面嵌套了一個iframe頁面,當這個頁面提交後再次跳轉到本頁面時,原本iframe內的頁面應該刷新數據的,結果在ie下面卻沒刷新(FF下沒問題),必須手動F5或者新開一個瀏覽器標簽頁瀏覽才能刷新,否則在本頁面的瀏覽器上按回車是沒用的,查閱了很多資料,最後終於發現是iframe緩存機制在搞鬼,用以下方法即可解決:
<script type="text/JavaScript">
var randomnumber=Math.floor(Math.random()*100000)
document.write('
<iframe src="http://www.freedonation.com/hunger/hunger_thankyou.php3?randomnumber='+randomnumber+'" name="aframe" width="100%" height="400"></iframe>')
</script>
通過請求多加一個值為隨機數的參數,這樣瀏覽器認為每次請求的頁面都是新的而保證了iframe頁面每次都是重新載入的。
頂
0
踩
0
4. iframe只在本地顯示,上傳到伺服器就不顯示了
趕腳應該是你IFRAME嵌入的地址或者文件路徑有問題,請檢查下你嵌入的是否使用了絕對地址?絕對地址是否可以幫正能被訪問等等,如果對你有幫助,請採納,謝謝
5. 清理iframe 緩存
A頁面如下:
<body>
<iframe src="b.html" name="b" style="border:#3161C6 solid 2;">
</iframe>
<iframe src="main.html" name="main" style="border:#3161C6 solid 2;">
</iframe>
</body>
B頁面如下:
<body>
<a href="http://www..com" target="main">網路</a>
<a href="http://www.qq.com" target="main">QQ</a>
</body>
</html>
可以更新啊