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