移动应用程序 - 在后端存储和版本相对静态的 json 文件

Posted

技术标签:

【中文标题】移动应用程序 - 在后端存储和版本相对静态的 json 文件【英文标题】:Mobile app - Store and version relatively static json files on the backend 【发布时间】:2017-12-09 08:21:48 【问题描述】:

我有一个从几个 json 文件中读取数据的移动应用程序。该应用程序不会以任何方式修改数据。数据大多是静态的,但每隔几天(5-6 天)可能会有变化(添加/删除/更新)。这些文件的大小约为 300-400KB。

我想找到一种将这些数据存储在后端的好方法,这样我就不必每次必须更新静态数据时都推送应用更新。我正在考虑对后端的 json 文件进行版本控制,以便客户端可以检查它是否具有最新版本,然后在有更新时下载新文件。

在客户端,我只是将静态 json 读入内存。如果尺寸变大,这会是一个问题吗?我是否应该研究一种替代方法,例如将 JSON 存储在领域数据库中?

有没有更好的方法在服务器和客户端之间同步此类静态数据?

【问题讨论】:

您在 android 中的最佳解决方案是共享首选项! 您建议如何对数据进行版本控制? 同一事物存储两个共享首选项,一个用于 Json 字符串,另一个用于 int 版本! 【参考方案1】:

关于想要“检查 json 文件的版本”,您走在正确的道路上,因为每次下载 400kb 并不是一个微不足道的大小。有多种方法可以做到这一点,最简单的可能是通过从后端公开一个端点,其中包含 json 文件的最后修改日期,并通过 SharedPreferences 在应用程序的某处存储最后更新日期,并且仅在以下情况下获取 json 文件这些值不匹配。

【讨论】:

这是一个很好的建议。谢谢! 在客户端应用程序中的什么时候检查客户端是否需要更新数据?在应用启动时?在应用下载和同步之前保持冻结状态是否可以接受? 如果您的应用有启动画面,那是放置它的最佳位置。否则,我会说这取决于这些更新的重要性。没有它,应用程序会正常运行吗?可能每天或每隔几天安排一次(JobScheduler/SyncAdapter/AlarmManager)。它对某些功能至关重要吗?在这些屏幕之前添加一个检查,可能会阻止一个进度对话框。没有它,应用程序将无法工作?在每次 API 调用期间检查版本(可能使用 jwt 会话令牌),使用 Firebase 通知触发下载,即使应用未在使用中。

以上是关于移动应用程序 - 在后端存储和版本相对静态的 json 文件的主要内容,如果未能解决你的问题,请参考以下文章

Nodemon:是不是可以仅在后端文件中而不是在静态前端文件中重新启动 Node js 服务器?

JS-移动端判断上拉和下滑

JSON 仅在后端和前端之间

移动端应用rem定义相对长度单位

gulp静态资源构建压缩版本号添加

Vue/JS自定义指令:实现元素滑动移动端适配以及边界处理