在混合应用程序开发中使用本地存储作为"本地数据库" - 危险还是有用?

时间:2015-02-19 15:36:44

标签: javascript angularjs local-storage ionic-framework hybrid-mobile-app

我正在构建一个混合应用程序(Ionic),只需要local storage来保存我的数据库对象。

该应用只允许您存储,编辑和查看简单的备注

现在,显然我需要确保当用户保存笔记时,它仍会存储在手机上。

我的问题是,在这种情况下使用window.localstorage是否有任何危险? 此外,在哪些情况下用户会丢失所有数据?一个明显的情况是他删除并重新安装应用程序。

如果本地存储不是可行的方法,还有其他方法(或者它总是需要服务器端解决方案)?

2 个答案:

答案 0 :(得分:3)

本地存储确实是在Cordova应用程序中存储数据的简便方法。 正如JohnAndrews所指出的,如果用户清理应用程序数据,所有数据都可能丢失。 除此之外,LocalStorage还存在一些局限性:

  • 非常方便键值对,但很难存储复杂的数据
  • 你不能"查询"您的数据
  • 如果您在移动应用上使用多个网页浏览量,则需要HTML5内容来自同一个域,否则不会在网络视图中共享LocalStorage数据。

如果您想了解有关Ionic(Cordova)应用程序数据存储可能性的更多信息,请查看其官方文档http://cordova.apache.org/docs/en/4.0.0/cordova_storage_storage.md.html

答案 1 :(得分:1)

使用localStorage(在我的情况下),我发现有一些限制,包括:

  • 存储限制(约5MB)取决于浏览器(for more info here
  • 只存储字符串,以便最终转换为json(JSON.stringify)并通过json对象查询
  • 一旦移动存储空间已满,它将强制存储内部的所有数据

我最终寻找新的候选人(sqlite似乎很有希望,但iOS 10有一些问题) 另一方面,如果您的应用程序存储少量数据或大多数与在线数据库进行交易。 localStorage似乎很不错

  • 易于使用,已经可用于大多数浏览器
  • Json像NoSQL一样工作