如何使 iOS 应用在网络请求中变得响应迅速
How to Make iOS App Heavy in Network Requests Feel Responsive
我正在开发一个基于社交的应用程序。它主要处理为特定 activity 创建时间表并邀请其他用户在特定日期和时间加入。但是,该应用程序使用 Parse 作为其后端。几乎每一个动作都需要一些网络,在低质量的连接上感觉很慢。
如何使应用程序看起来响应更快?
- 当检索到数据时,比如说当前朋友的列表,我是否将这些朋友存储在 Core Data 中,然后通过在刷新过程中添加或删除朋友来更新我的 Core Data 模型?
- 我是否应该使用某种缓存工具,例如
NSCache
?
- 我是否只是在网络请求 运行 时在屏幕上显示加载器,然后在完成后更新 UI?
我看到 Facebook 和 Instagram 等应用程序在启动时会显示一些帖子,同时它们会获取最新数据,但我不确定它们是如何实现的。
你能给我一个合适的方向吗?
保留某种离线缓存很有用,因为这意味着即使您仍在从网络连接加载新数据,也可以立即显示一些数据。 Core Data 对此很有用,但这实际上取决于数据的性质以及您的应用程序如何使用它。 NSCache
可能不是您想要的,因为它只将数据保存在内存中,不会在您的应用下次运行时保存。
需要频繁网络更新的应用程序(如 Facebook)通常使用 iOS 的后台获取系统。如果您选择加入此功能,iOS 将不时在后台启动您的应用程序以允许其获取新数据。如果您的应用将该数据保存在设备上的某处,当用户点击您的应用图标时,它就已经存在了。
使用后台获取非常简单——您将适当的键添加到 Info.plist,然后在您的应用委托中实现 application(application:, performFetchWithCompletionHandler:)
。
我正在开发一个基于社交的应用程序。它主要处理为特定 activity 创建时间表并邀请其他用户在特定日期和时间加入。但是,该应用程序使用 Parse 作为其后端。几乎每一个动作都需要一些网络,在低质量的连接上感觉很慢。
如何使应用程序看起来响应更快?
- 当检索到数据时,比如说当前朋友的列表,我是否将这些朋友存储在 Core Data 中,然后通过在刷新过程中添加或删除朋友来更新我的 Core Data 模型?
- 我是否应该使用某种缓存工具,例如
NSCache
? - 我是否只是在网络请求 运行 时在屏幕上显示加载器,然后在完成后更新 UI?
我看到 Facebook 和 Instagram 等应用程序在启动时会显示一些帖子,同时它们会获取最新数据,但我不确定它们是如何实现的。
你能给我一个合适的方向吗?
保留某种离线缓存很有用,因为这意味着即使您仍在从网络连接加载新数据,也可以立即显示一些数据。 Core Data 对此很有用,但这实际上取决于数据的性质以及您的应用程序如何使用它。 NSCache
可能不是您想要的,因为它只将数据保存在内存中,不会在您的应用下次运行时保存。
需要频繁网络更新的应用程序(如 Facebook)通常使用 iOS 的后台获取系统。如果您选择加入此功能,iOS 将不时在后台启动您的应用程序以允许其获取新数据。如果您的应用将该数据保存在设备上的某处,当用户点击您的应用图标时,它就已经存在了。
使用后台获取非常简单——您将适当的键添加到 Info.plist,然后在您的应用委托中实现 application(application:, performFetchWithCompletionHandler:)
。