UPDATE: 2021-01-20 20:01
我们在开发微信 H5页面的时候经常会遇到资源文件(图片、css、js 等)不更新的问题,其实解决方案很简单,只要在请求地址之后加一个随机数参数即可:
<img src="./img/image-url-test.jpg?v20180318214000">
本文想探究的是除了主动在资源文件上加参数以外,通过微信 App 自身,有哪些用户可操作的动作会清空缓存,以及微信内置浏览器的 cookie 和 localStorage 会在何时清除。
本实验硬件及软件版本
iPHone Xs, iOS 14.2
oppo R11st, Android 9, ColorOs V6.0.1
魅族 16th, Android 8.1.0, Flyme 8.1.5.0A
微信软件版本
iOS 7.0.21
Android 7.0.22
你可以使用以下文件来测试cookie:
https://feizhaojun.com/demo/cookie
你可以使用以下文件来测试localStorage:
https://feizhaojun.com/demo/localstorage.html
我们整理了一下微信的相关操作:
右上角菜单-刷新
iOS 如果连续操作两次点开右上角菜单刷新,会更新浏览器资源文件
安卓如何刷新都不会更新浏览器资源文件
2 微信清理缓存
1. iOS:我→设置→通用→存储空间→缓存→清理
2. 安卓:我→设置→通用→微信存储空间
3. 安卓:我→设置→通用→微信存储空间→缓存→清理
iOS清理缓存不会清理webview的浏览器缓存
iOS清理缓存会清空cookie (2021-01-20)
iOS清理缓存不会清空localStorage (2021-01-20)
安卓点击“微信存储空间”之后,就会清空cookie (2021-01-20)
安卓点击“微信存储空间”之后,就会清空localStorage (2021-01-20)
安卓点击“微信存储空间”之后,会清除缓存
3 删除聊天记录
1. iOS:设置-清空聊天记录
2. 安卓:设置-聊天-清空聊天记录
不管是安卓还是 iOS,清空聊天记录并不能清除webview的浏览器缓存、cookie、和 localStorage
4 注销登录
1. iOS:我→设置→退出登录
2. 安卓:我→设置→退出
iOS重新登录会清空cookie (2021-01-20)
iOS重新登录会清空localStorage (2021-01-20)
安卓重新登录会清空cookie (2021-01-20)
安卓重新登录会清空localStorage (2021-01-20)
不管是安卓还是 iOS,注销之后重登陆,都会清除webview的浏览器缓存、cookie、和 localStorage
5 删除重装(没有试过)
没有尝试。
点击右上角菜单刷新,连续操作两次
找到:我→设置→通用→微信存储空间,点进去即可
清空cookie
找到:我→设置→通用→存储空间→缓存→清理
重新登录:我→设置→退出登录
找到:我→设置→通用→微信存储空间,点进去即可
重新登录:我→设置→退出登录
清空localStorage
重新登录:我→设置→退出登录
找到:我→设置→通用→微信存储空间,点进去即可
重新登录:我→设置→退出登录