加载相同的 URL 后不会调用 cachedResponseForRequest

发布于 2024-12-09 15:42:57 字数 344 浏览 1 评论 0原文

我对 NSURLCache 进行了子类化,并覆盖了 cachedResponseForRequest,并将共享缓存更改为我自己的缓存对象,以拦截 UIWebView 发出的每个 url 请求。它第一次运行得很好,当 URL 加载到 UIWebView 中时,它会拦截所有内容(css、jpg 等)。但是,当我尝试加载相同的 URL(例如,index.html)时,将不会调用 cachedResponseForRequest 方法。如果我尝试使用不同的 URL,它会再次完美运行。

我尝试将请求的cachePolicy修改为每个可能的值,但没有任何帮助。

I subclassed NSURLCache, and overwrote cachedResponseForRequest, and changed the shared cache to my own cache object, to intercept every url request made by a UIWebView. It works perfectly at the first time, when the URL loaded into the UIWebView, it intercepts everything (css, jpg, etc). But when I try to load the same URL (eg. index.html), the cachedResponseForRequest method won't be called. If then I try with a different URL it works perfectly again.

I tried to modify the request's cachePolicy to every possible values, but nothing helped.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

欢你一世 2024-12-16 15:42:57

最后我找到了一个解决方案:在每次 URL 请求之后,您必须释放所有 UIWebView,并在下一个请求之前重新创建它们。重要提示:每次发布都应在新分配之前发生。

Finally I found a solution: after every URL request, you have to release all the UIWebViews, and re-create them before the next request. IMPORTANT: every release should occur before the new allocs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文