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

Javascript 在混合应用程序开发中使用本地存储作为;“本地数据库”危险还是有用?,javascript,angularjs,local-storage,ionic-framework,hybrid-mobile-app,Javascript,Angularjs,Local Storage,Ionic Framework,Hybrid Mobile App,我正在构建一个混合应用程序(Ionic),只需要保存我的数据库对象 该应用程序只允许您存储、编辑和查看简单的注释 现在,显然我需要确保当用户保存一张便条时,它仍然存储在他的手机上 我的问题是,在这种情况下使用window.localstorage是否存在任何危险此外,在哪些情况下,用户会丢失所有数据?一个明显的情况是删除并重新安装应用程序 如果本地存储不是解决方案,还有什么其他方法(或者它总是需要服务器端解决方案)?本地存储确实是在Cordova应用程序中存储数据的一种简单方法。 正如JohnA

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

该应用程序只允许您存储、编辑和查看简单的注释

现在,显然我需要确保当用户保存一张便条时,它仍然存储在他的手机上

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


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

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

  • 它对于键值对非常方便,但很难存储复杂的数据
  • 您不能“查询”您的数据
  • 如果您在移动应用程序上使用多个webview,您需要HTML5内容来自同一域,否则LocalStorage数据将不会在webview之间共享

如果您想了解更多有关Ionic(Cordova)应用程序数据存储可能性的信息,请查看其官方文档

我发现在使用localStorage时存在一些严重限制(以我为例),包括:

  • 存储限制(~5MB)取决于浏览器()
  • 只存储字符串,以便最终转换为json(json.stringify)并通过json对象进行查询
  • 一旦移动存储已满,它将强制清除存储中的所有数据
我最终寻找了新的候选人(sqlite似乎很有希望,但iOS 10有一些问题) 另一方面,如果您的应用程序存储少量数据或主要使用在线数据库进行事务处理。本地存储看起来不错

  • 易于使用,已适用于大多数浏览器
  • Json的工作方式与NoSQL类似

如果有人清除他的应用程序数据,我认为数据会丢失,您也可以使用sqllite,如本文所述:谢谢链接。例如,如何在iPhone上清除应用程序数据?该应用程序是特定的还是类似于“重置为出厂设置”之类的。