在混合应用程序开发中使用本地存储作为 "Local Database" - 危险还是有用?
Using Local Storage in Hybrid App Development as a "Local Database" - Dangerous or Useful?
我正在构建一个混合应用程序 (Ionic),只需要 local storage 来保存我的数据库对象。
该应用程序仅允许您存储、编辑和查看简单的 Notes。
现在,显然我需要确保当用户保存笔记时,它仍然存储在他的 phone 上。
我的问题是,在这种情况下使用 window.localstorage
有什么危险吗? 此外,在哪些情况下用户会丢失其所有数据? 一个明显的情况是当他删除并重新安装该应用程序时。
如果本地存储不是可行的方法,还有哪些其他方法(或者它总是需要服务器端解决方案)?
本地存储确实是一种在 Cordova 应用程序中存储数据的简单方法。
正如 JohnAndrews 所指出的,如果用户清理应用程序数据,所有数据都可能丢失。
除此之外,LocalStorage 存在一些限制:
- 对于键值对来说非常方便,但很难存储复杂的数据
- 您不能"query"您的数据
- 如果您在移动应用上使用超过 1 个网络视图,您需要 HTML5 内容来自同一域,否则 LocalStorage 数据将不会跨网络视图共享。
如果您想了解有关 Ionic (Cordova) 应用程序数据存储可能性的更多信息,请查看他们的官方文档 http://cordova.apache.org/docs/en/4.0.0/cordova_storage_storage.md.html
我发现在使用 localStorage(在我的例子中)时存在一些严重的限制,包括:
- 存储限制(~5MB)取决于浏览器(for more info here)
- 只存储字符串,所以你最终会转换成 json (JSON.stringify) 并通过 json object
查询
- 一旦移动存储空间满了,就会强制清空存储空间中的所有数据
我最终在寻找新的候选人(sqlite 看起来很有前途,但 iOS 10 有一些问题)
另一方面,如果您的应用程序存储少量数据或主要与在线数据库进行交易。 localStorage 看起来不错
- 易于使用,已适用于大多数浏览器
- Json 像 NoSQL
一样工作
我正在构建一个混合应用程序 (Ionic),只需要 local storage 来保存我的数据库对象。
该应用程序仅允许您存储、编辑和查看简单的 Notes。
现在,显然我需要确保当用户保存笔记时,它仍然存储在他的 phone 上。
我的问题是,在这种情况下使用 window.localstorage
有什么危险吗? 此外,在哪些情况下用户会丢失其所有数据? 一个明显的情况是当他删除并重新安装该应用程序时。
如果本地存储不是可行的方法,还有哪些其他方法(或者它总是需要服务器端解决方案)?
本地存储确实是一种在 Cordova 应用程序中存储数据的简单方法。 正如 JohnAndrews 所指出的,如果用户清理应用程序数据,所有数据都可能丢失。 除此之外,LocalStorage 存在一些限制:
- 对于键值对来说非常方便,但很难存储复杂的数据
- 您不能"query"您的数据
- 如果您在移动应用上使用超过 1 个网络视图,您需要 HTML5 内容来自同一域,否则 LocalStorage 数据将不会跨网络视图共享。
如果您想了解有关 Ionic (Cordova) 应用程序数据存储可能性的更多信息,请查看他们的官方文档 http://cordova.apache.org/docs/en/4.0.0/cordova_storage_storage.md.html
我发现在使用 localStorage(在我的例子中)时存在一些严重的限制,包括:
- 存储限制(~5MB)取决于浏览器(for more info here)
- 只存储字符串,所以你最终会转换成 json (JSON.stringify) 并通过 json object 查询
- 一旦移动存储空间满了,就会强制清空存储空间中的所有数据
我最终在寻找新的候选人(sqlite 看起来很有前途,但 iOS 10 有一些问题) 另一方面,如果您的应用程序存储少量数据或主要与在线数据库进行交易。 localStorage 看起来不错
- 易于使用,已适用于大多数浏览器
- Json 像 NoSQL 一样工作