问题标签 [nsurlrequestcachepolicy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
76 浏览

objective-c - 数据是否来自缓存?

NSMutableURLRequest要求:如果无法从服务器获取数据,则从缓存中获取数据。如果互联网可用并且我从服务器获取数据,则函数将返回服务器数据,但如果请求无法从服务器获取数据,则函数将返回NSCache数据根据cachePolicy

为了解决这个问题,我将cachePolicyfrom更改NSURLRequestReloadIgnoringLocalCacheDataNSURLRequestReturnCacheDataElseLoad. 现在我从NSCache.

现在,我需要找出这个函数何时返回NSCache数据以及何时从实时服务器返回数据,如果有人告诉我获取缓存数据的方法是否正确,它也会有所帮助?

0 投票
1 回答
359 浏览

ios - IOS - 第二次单击相同按钮时,WKWebview 在决定策略中获取空 url

我有一个WKWebview带有下载pdf的按钮,按钮链接如下:

我已经设法通过某些逻辑下载了 PDF,该逻辑有一个方法的起点decidePolicyFor

这很好用,并且 url 是 PDF 的那个。但是,如果我再次单击该按钮,我只会收到nullurl,因此我无法再次打开该文档。这是我收到的操作:

如果我在 Safari Desktop 上对此进行测试,则每次都可以正常下载文件,但是我找不到 WKWebView 停止接收 url 的原因。没有调用其他委托方法,甚至在createWebViewWith调用 target="_blank" url 时倾向于调用的委托方法也没有。

我想知道 WKWebview cachePolicy 是否正在生效,但我找不到避免该 url 缓存的方法,或者如果它正在被缓存,则在它试图再次加载它时接收事件。

另外,请注意,如果我长按链接,预览元素会正确保存 URL。

0 投票
0 回答
48 浏览

ios - 应该使用哪个缓存策略?

我的数据是从 JSON API 检索的,并且数据每天都会更改。目前,我现在正在使用reloadIgnoringLocalCacheData它,它忽略缓存数据并始终从原始源检索数据。

我的问题是,我可以先将缓存与原始数据进行比较,如果它们不相等,则从服务器检索数据,否则使用缓存数据。或者可能为缓存设置过期时间,如何实现?

0 投票
1 回答
279 浏览

cache-control - CachedURLResponse 过期不起作用

我试图为“ Cache-Control ”设置自定义标头以在客户端实现缓存(服务器端有“ Cache-Control: no-cache ”)。试图实现以下两个主要的事情。

  1. 一些端点的响应应该被缓存在内存中并且应该有一个过期时间(用户定义)
  2. 一旦过期时间结束,应用程序应该忽略缓存并从服务器获取数据。

我点击了这个链接,并能够实现第一个目标,但不知何故,即使在到期后应用程序仍在使用缓存并且没有触发任何 API 调用。不确定应用程序是否忽略了标题中设置的“最大年龄” 。如果我在这里遗漏了什么,请指导我。

以下是代码片段。

会话配置

要求

}

缓存逻辑:

CachedURLResponse 扩展:

}

0 投票
1 回答
28 浏览

ios - NSURLCACHE 策略在网站可访问时更新缓存数据,因此始终加载缓存

我对 swift 和 iOS 开发完全陌生。我正在尝试做一个 webview 应用程序,我需要更新缓存,因为网站可以更改,但我还需要能够在离线时访问它。有没有我可以使用的预制缓存策略来实现这一点?