被微信浏览器的缓存给忽悠啦!
2023-09-11 14:17:26 时间
最近为一个老项目做微信接入相关的工作,遇到一个特别奇葩的事情,客户端明明用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浏览器的换成问题,ctrl+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" />
感觉不一定靠谱。
微信开发一定要注意他的缓存问题。
相关文章
- 浅谈微信小程序对于创业者,意味着什么?
- 实现微信浏览器内打开App Store链接
- 手机浏览器直接唤起微信方案调研
- .NET C#使用微信公众号登录网站
- 记写 android 微信登录的demo历程
- PHP判断是否在微信内部浏览器访问
- uni-app:微信小程序:使用外部字体(hbuilderx 3.7.3)
- 【微信小程序】---- weapp-redux的使用文档
- 微信小程序----高德地图开发应用(获取key)
- [FE] JS 判断当前是否在微信浏览器中的最新代码
- 解决微信视频号 当前浏览器不支持此视频格式 的错误消息
- [转]用chrome模拟微信浏览器访问需要OAuth2.0网页授权的页面
- atitit。浏览器缓存机制 and 微信浏览器防止缓存的设计 attilax 总结
- js判断是否微信PC端打开内置浏览器
- 判断是否是微信浏览器
- 微信小程序基本语法介绍
- 我的微信luogantt