微信開發比較頭疼的一個情況就是緩存難以清除,然而奇怪的是微信app在IOS中是可以刷新頁面的,但是Android中卻不知道基於什麼考慮,無法清除緩存也沒有刷新功能,這個就給開發者設置了不小的障礙,哪有頁面是最好就不改的,然後如果去改,微信浏覽器緩存著css、圖片,這樣改完後看效果就變得相對費勁了。
我上網查過,遇到這個蛋疼問題的不止我一個,尋尋覓覓卻找不到解決辦法的也不止我一個,有人說去微信“設置”、“通用”中“清除微信存儲空間”,我想問,兄弟你這樣弄成功了嗎?這個清理看似根本不是清理緩存,是去清理自己的聊天記錄啊,就算你能清理掉緩存,聊天數據也沒有了,難道你作為開發者就要這麼苦逼,捨己為項目?
還有人說用什麼殺毒軟件、系統工具去清理存儲空間,我也試過,感覺好像有的時候可以,有的時候不靈,而且是有個工具軟件可以有的不行,開發最怕這種時靈時不靈的感覺,要麼就是好使要麼就直接不好使,不然反復浪費時間在裡面。
……
最後我也是沒有折了,想到一個早該想到的辦法:在文件路徑後面加上一個隨機數。真是豁然開朗啊!對於PHP寫的程序那就更加簡單了,用PHP生成一個隨機數,然後再html的文件路徑後面加上這個隨機數即可。
一,PHP 開發
PHP代碼:
$rand = rand(10000,99999);
html代碼:
<img src="header.jpg?rand=<?php echo $rand; ?>"
二,使用meta頭信息實現取消了微信浏覽器的緩存
做微信公眾號和調試手機頁面的時候,避免不了頁面要跳轉到微信浏覽器打開,調試階段,android版微信浏覽器一直都默認緩存html靜態資源,每次靜態資源變化甚至新內容發布的時候在微信浏覽器上都極有可能不能更新,很多時候要清理微信緩存才能看到效果,很是煩人。部分客戶裝了QQ浏覽器,微信實際調用的是QQ浏覽器,有時候甚至光清理微信緩存都無效,QQ浏覽器的緩存也要清。
經過一番探索微信浏覽器確實是在webview的上層做的緩存:就是如果請求過了這個地址,就會存在本地,之後不取線上了。
解決方案是在調試階段或者頻繁更新的頁面加入以下頭信息
<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" />
這樣微信浏覽器對這個頁面將會一直上線拉取了。