被微信瀏覽器的緩存給忽悠啦!


最近為一個老項目做微信接入相關的工作,遇到一個特別奇葩的事情,客戶端明明用js window.location = 'xxx.html' 訪問了一個頁面,那個頁面會自動去訪問后台的接口,后台接口去調用微信的接口,但是測試的時候,發現有的時候可以成功訪問到 xxx.html,有的時候不能成功訪問到xxx.html,后台調試輸出的結果是,不管你是否成功的訪問到了 xxx.html 頁面,都會進行正常的 xxx.html 頁面之后的操作,也就是訪問后台的接口,但是如果沒有成功訪問到 xxx.html,所以它后面的操作就會失敗,如果成功訪問到了xxx.html,那么后面的操作就能正常進行。調試了兩個多小時,一直搞不明白,前端明明  window.location = 'xxx.html',為什么就沒有訪問到 xxx.html 頁面呢?太奇怪了。后來用手機重復測試的,觀察反應的時候,發現 在訪問 xxx.html頁面時, 微信瀏覽器 的標題 會顯示 xxx.html 頁面的<title> 的標題,但是不到1秒,之后,有跳回到了之前的頁面,瑪德,到這里,才想到是 微信瀏覽器的緩存在作怪!!!以前也遇到過PC瀏覽器的換成問題,ctrl+f5 或者安裝個插件設置一下就永遠搞定了,但是第一次遇到微信瀏覽器的緩存,還是被忽悠了。

 

找到了原因,解決辦法就簡單了。window.location='xxx.html' 時,在后面加個隨機參數:window.location='xxx.html?_r='+Math.random();

這樣每次訪問的都是不同的連接,所以避免了微信瀏覽器使用緩存的 xxx.html 頁面。

其它的解決辦法:

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

感覺不一定靠譜。

微信開發一定要注意他的緩存問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM