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

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

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

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

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

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

© 2021 V2EX