android - 当 React 本机应用程序启动时,如何在设备上保存/缓存所有数据以便在后台快速加载和更新?
问题描述
我使用 axios 进行 API 调用,并使用异步存储来存储一些详细信息,例如用户配置文件等。但是异步存储似乎很慢。
我的应用程序的关键功能需要互联网才能工作,但许多屏幕的内容不会实时或始终更新。如何将所有这些信息保存在本地,以便每当启动应用程序的新会话时,屏幕显示已完全加载,而不是从 API 查询数据并显示加载器,信息更新可以在后台发生。就像所有主要应用程序的工作方式一样,不加载已加载的内容,而是以某种方式将其保存在设备本身上,但同时允许在有新信息时进行更新。
应用程序中存储所有信息的某种数据库会起作用吗?如果是的话,最好使用 Redux、Axios 实现,它速度快而不像异步存储那么慢?
解决方案
异步存储应该可以正常工作。要实现这一点,您需要确保仅在第一次启动应用程序时使用 API 数据,而不是在后续启动时使用。然后添加一个检查更新的更新函数。这是一个粗略的实现。
当 App 加载时,尝试从本地存储中获取数据。如果是第一次启动,则存储中没有任何内容,因此从 API 获取数据。
一旦数据回来。将其保存到本地存储以供下次应用启动。显示数据。
如果数据存在于本地存储中(后续启动),您将需要发送 API 调用以获取最新数据。数据返回后,将其放入本地存储中。确保这不是阻塞调用。是否要更新屏幕上的当前数据取决于您。
推荐阅读
- linux - 如何按主机名而不是 instance_id 过滤以进行谷歌堆栈驱动程序日志记录?
- jenkins - Jenkins:从队列中的项目获取作业名称(通过 API)
- react-native - React-Native openURL Twitter 链接问题
- java - 合并两个不同类型的列表
- elasticsearch - Lucene 和 Elasticsearch 中的分片管理
- cucumber - AJAX 调用测试数据的 Cucumber 测试已保存
- arduino - 在 Arduino 中添加十六进制数字以错误的结果结尾
- apache-spark - Cassandra 复制是否会降低其他 DC 中的分析性能,反之亦然?
- angular - 在 Angular 6 中,如何创建一个添加查询参数但不更改(可选子)URL 的链接?
- javascript - 如何在开玩笑的测试之间恢复模拟实现?