微信瀏覽器取消緩存的方法

作微信公衆號和調試手機頁面的時候,避免不了頁面要跳轉到微信瀏覽器打開,調試階段,android版微信瀏覽器一直都默認緩存html靜態資源,每次靜態資源變化甚至新內容發佈的時候在微信瀏覽器上都極有可能不能更新,不少時候要清理微信緩存才能看到效果,非常煩人。部分客戶裝了QQ瀏覽器,微信實際調用的是QQ瀏覽器,有時候甚至光清理微信緩存都無效,QQ瀏覽器的緩存也要清。css

通過一番探索微信瀏覽器確實是在webview的上層作的緩存:就是若是請求過了這個地址,就會存在本地,以後不取線上了。html


解決方案:android

1、經過url參數避免html文件緩存

請求同一個頁面的時候,若是url後面的參數不同,則不會調用微信緩存中的html頁面,由此能夠解決html頁面的緩存問題。例如加個版本號或時間戳nginx

www.xxx.com/home.html?v=1.0

  

2、避免css和js的緩存

以上工做完成以後,咱們解決了html的緩存問題,可是經過訪問nginx(或是其餘工具)的日誌發現,雖然帶上了不一樣的參數,html確實不會緩存了,可是卻沒有js和css文件的請求。web

猜想在這裏,微信發現咱們所請求的js和css文件在他的緩存裏面有了,因此就直接打開緩存中的文件返回給了頁面上。(因此這就坑爹了啊!!)瀏覽器

因此咱們要在html文件的頭部(head)處加上一些meta:緩存

<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" />

ps,網上不少答案都提供了添加在head處的meta,可是有的人說沒有用。目測是由於meta只能保障js和css等資源不會被緩存,可是沒法保障html不被緩存。因此,要和url參數方法於meta方法一塊兒使用,才能保障毫無側漏!微信

相關文章
相關標籤/搜索