微信的缓存问题,导致不经后台接口,直接跳转至上次访问的页面

最近为一个老项目做微信接入相关的工作,遇到一个特别奇葩的事情,客户端明明用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浏览器的换成问题,ctl+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" />

感觉不一定靠谱。

微信开发一定要注意他的缓存问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值