UIWebView 和 NSUrlCache

发布于 2024-09-08 16:28:28 字数 260 浏览 2 评论 0原文

我有一个 NSURLCache,它只记录 cachedResponseForRequest 和 storeCachedResponse 调用。

看来UIWebView将为每个请求调用cachedResponseForRequest,但storeCachedResponse只会为顶级页面调用,即不会为任何css / js /等调用。 html 中指定。

有什么理由可以解释为什么这种情况会(不会)发生吗?

我在 3.2 ipad 模拟器和设备上观察到这一点。

I have a NSURLCache that simply logs cachedResponseForRequest and storeCachedResponse calls.

It seems that UIWebView will call cachedResponseForRequest for every request, but storeCachedResponse will only be called for the top-level page, i.e. not for any css/js/etc. specified in the html.

Is there any reason why this might be (not) happening?

I'm observing this on 3.2 ipad simulator and device.

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

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

发布评论

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

评论(1

不再见 2024-09-15 16:28:28

据我了解,WebKit 使用私有机制在缓存中获取和存储资源。这些是前面提到的方法:

- (CFCachedURLResponse*)_nscfBridgeURLCacheCopyResponseForRequest:(CFURLRequest*)request;
- (void)_nscfBridgeURLCacheStoreCachedResponse:(CFCachedURLResponse*)cachedResponse forRequest:(CFURLRequest*)request;

请注意,它们使用的是 Core Foundation 对象。

As far as I understand, the WebKit is using a private mechanism to get and store assets in cache. These are the aforementioned methods:

- (CFCachedURLResponse*)_nscfBridgeURLCacheCopyResponseForRequest:(CFURLRequest*)request;
- (void)_nscfBridgeURLCacheStoreCachedResponse:(CFCachedURLResponse*)cachedResponse forRequest:(CFURLRequest*)request;

Note that they're using Core Foundation objects.

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