有没 React 大佬问个 iOS 端网络请求一直走缓存的问题

2024 年 5 月 21 日
 milukun
我们的 Flutter app 里面有一个 H5 页面,但是奇怪的是这个页面里面访问 api 的时候,除了第一次访问,其他全部都是走的缓存,就是没有真正请求接口
后端搜不到,(每次请求返回的数据都会有 id ,从控制台看 id 也是一样的)
问题是已经禁用了缓存,在安卓上表现正常,在 iOS 上一直是缓存,除非杀掉 app ,重新进入。但是也只有第一次是全新的,后面全是缓存,这个有什么思路吗?
2128 次点击
所在节点    程序员
12 条回复
MozzieW
2024 年 5 月 21 日
Safari 连电脑可以进入开发者模式。Flutter App 应该也可以,进去检查请求和返回的 header
iOCZS
2024 年 5 月 21 日
你用了什么库呢?有些库是有缓存功能的
iOCZS
2024 年 5 月 21 日
看错了,是 H5 的话,那就是 webview 自己有缓存,要看看怎么配置的
maplelin
2024 年 5 月 21 日
是不是用了 swr 或者 react-query
R1hu6Hs2sSN8pkVX
2024 年 5 月 21 日
有没有可能是后台自己的缓存
okakuyang
2024 年 5 月 21 日
这种现象闻所未闻,没听说过脚本发起的请求还能缓存的,怕不是有什么地方把你请求拦截了。
Drool
2024 年 5 月 21 日
url 加时间戳试试呢
jazzg62
2024 年 5 月 21 日
服务器的 cache-control 是怎么配置的呢
iosyyy
2024 年 5 月 21 日
感觉框架的问题检查框架是否有缓存
ugpu
2024 年 5 月 22 日
简单粗暴 加个时间戳:
const url = `https://api.example.com/endpoint?timestamp=${new Date().getTime()}`;

方法二:
flutter 嵌入 H5 那应该是 webview? 加入标识: " 'Cache-Control': 'no-cache, no-store, must-revalidate',"

###
onWebViewCreated: (WebViewController webViewController) {
webViewController.clearCache();
final Map<String, String> headers = {
'Cache-Control': 'no-cache, no-store, must-revalidate',
'Pragma': 'no-cache',
'Expires': '0',
};
webViewController.loadUrl('https://your-h5-page-url.com', headers: headers);
},
###

还解决不了建议用户更换手机
milukun
2024 年 5 月 22 日
H5 的同事反馈是把缓存机制停掉了。但是还不知道为什么 iOS 会有问题,Android 不会
milukun
2024 年 5 月 22 日
停掉缓存机制后,正常了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1042490

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX