做微信公众号和调试手机页面的时候,避免不了页面要跳转到微信浏览器打开,调试阶段,android版微信浏览器一直都默认缓存html静态资源,每次静态资源变化甚至新内容发布的时候在微信浏览器上都极有可能不能更新,很多时候要清理微信缓存才能看到效果,很是烦人。部分客户装了QQ浏览器,微信实际调用的是QQ浏览器,有时候甚至光清理微信缓存都无效,QQ浏览器的缓存也要清。
经过一番探索微信浏览器确实是在webview的上层做的缓存:就是如果请求过了这个地址,就会存在本地,之后不取线上了。
解决方案是在调试阶段或者频繁更新的页面加入以下头信息
因为是 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" />
这样微信浏览器对这个页面将会一直上线拉取了。
1.expires(期限)
说明:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新调阅。
用法:<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
注意:必须使用GMT的时间格式。
2.Pragma(cach模式)
说明:禁止浏览器从本地机的缓存中调阅页面内容。
用法:<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
注意:这样设定,访问者将无法脱机浏览。
3.Refresh(刷新)
说明:需要定时让网页自动链接到其它网页的话,就用这句了。
用法:<META HTTP-EQUIV="Refresh" CONTENT="5;URL=http://www.baidu.com">
注意:其中的5是指停留5秒钟后自动刷新到URL网址。
下面标签作用是20秒自动刷新当前页面:
<meta http-equiv="refresh" content="20" />
4.Set-Cookie(cookie设定)
说明:如果网页过期,那么存盘的cookie将被删除。
用法:<META HTTP-EQUIV="Set-Cookie" CONTENT="cookievalue=xxx;
expires=Wednesday, 21-Oct-98 16:14:21 GMT; path=/">
注意:必须使用GMT的时间格式。