我一直在使用 JavaScript 开发一些应用程序,并利用 Adobe PhoneGap 进行跨平台集成。但是,我目前陷入了有关应用程序存储的架构决策并寻求指导。
我目前拥有的一个应用程序将用户数据(例如,用户配置选项、表记录等)作为文本文件存储在 Google 云端硬盘中。以下是应用程序启动的工作流程:
- 应用加载
- 用户使用 Google 帐户登录
- 系统检查 Google 云端硬盘上是否存在应用数据
- 如果数据存在,则加载文件。否则创建数据文件。
- 解析数据文件。
- 填充数据表、图表等。
当用户保存时,我基本上会捆绑这些数据并将文本文件保存回 Google 云端硬盘。
现在,我知道瓶颈当然是解析这个文件,它不如从数据库读取数据那么好,但这将是我的问题:您将如何以一定的成本将数据存储在云中有效的方式?您会定期将数据备份为文本文件吗?您是否有推荐的免费(即有限制)存储选项?
我有编写全栈 JavaScript 应用程序的经验,但从未在任何地方部署过这些应用程序......更多的是学习经验。
我在想,也许最好的选择是将 Node 服务器和 mongoDb 部署到某些云服务(可能是 AWS?),但我们的目标是,在一天结束时,赚一些钱。如果您需要更多详细信息,请告诉我!
最佳答案
这当然取决于您拥有多少用户以及您想要完成什么,因为通过互联网发送数据并将其保存在服务器上会给您带来其他 Angular 考虑,正如您提到的成本就是其中之一。 如果没有足够的用户,运行专用服务器是没有利润的。 您可以使用用户自己的 Google 云端硬盘存储空间,有些人喜欢,有些人不喜欢。 更重要的是安全性,因为某些用户数据非常敏感,通过互联网传输这些数据是一个问题,您必须采取正确的措施来确保其安全。也表现明智。 我知道当你打开应用程序时,你要做的第一件事就是等待,因为它必须从互联网加载和同步,这令人沮丧。
如果用户设备离线怎么办..?
我不知道它是什么类型的应用程序,所以我无法给您推荐。
如果它是敏感的,您可能不想通过互联网发送它。 它大吗,不要经常发送,并且在设备上有缓存。 如果它不是仅限互联网(持续连接)的应用程序,请确保它可以离线工作。 一直发送文件/数据是一个坏主意,因为它会耗尽电池并使用户生气(互联网消耗成本)。
在考虑安全性、性能、电池和成本时,本地总是更好。
出于备份原因,一个 session 同步一两次也不错, 尝试在后台(异步)执行此操作,这样就不会阻止您的用户。 确保您的设备上有缓存(如果可能)。
我的应用程序一开始就会检查一次在线数据。但我的应用程序使用设置,以便我可以更改而无需再次推送更新。 但它有一个缓存(离线)版本,供设备离线时使用。
例如,当您有银行应用程序时,不可能有缓存版本,因为缓存可能包含旧信息并向用户提供错误信息。 因此用户必须等待下载信息。但它仍然可以是异步的,因为应用程序仍然应该响应(ui)。因此它可以显示动画加载图标或者用户可以浏览并等待数据下载。
我希望这能回答您的问题。
关于javascript - 电话应用程序 : Cloud Storage vs Local,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36632267/