【问题标题】:Using Local Storage in Hybrid App Development as a "Local Database" - Dangerous or Useful?在混合应用程序开发中使用本地存储作为“本地数据库”——危险还是有用?
【发布时间】:2015-04-21 00:50:33
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 如果有人清除他的应用程序数据,我认为它会丢失,您也可以使用 sqllite,如本文所述:blog.nraboy.com/2014/11/…
  • 感谢您的链接。例如,您如何清除 iPhone 上的应用程序数据?是特定于应用程序还是类似于“重置为出厂设置”。

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


【解决方案1】:

在使用 localStorage(就我而言)时,我发现有一些严重的限制,包括:

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

我最终在寻找新的候选人(sqlite 看起来很有希望,但对于 iOS 10 有一些问题) 另一方面,如果您的应用程序存储少量数据或主要与在线数据库进行交易。 localStorage 好像还不错

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多