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