问题描述
小程序上传体验版后进行真机测试,但由于缓存的存在,webview的页面一直是旧页面。
产生的原因
一般情况下,浏览器缓存是个非常有用的特性,它能够提升性能、减少延迟,还可以减少带宽、降低网络负荷。 浏览器的缓存机制可以总结成下面两句:
1.浏览器每次发起请求,都会先在浏览器缓存中查找该请求的结果以及缓存标识 2.浏览器每次拿到返回的请求结果都会将该结果和缓存标识存入浏览器缓存中。
而web-view组件就是嵌在小程序里的网页,它本质上是运行在微信内置浏览器里的,它在缓存上并没有完全遵照上述的规则,也即它的缓存并不能及时得到清理; 在小程序里面, web-view组件是通过一个url地址来访问h5页面的,如果内嵌 H5 的地址不发生变化,那么 web-view 访问资源会从缓存里取,而缓存里并没有最新的数据,这就导致了服务端的最新资源根本无法到达浏览器,这也就解释了为什么修改 Nginx 的 Cache-Control 配置也无法生效的原因。所以,要想彻底解决及时刷新,必须让 web-view 去访问新的地址。
解决方案:
第一步 先把小程序里的缓存删除(新手机不用,已经存在缓存的手机需要,该清理方法仅限安卓微信8.0.22及以上版本)
我-》设置》通用-》存储空间 -》 点击“前往清理”
|