离子存储和原生存储的区别?

Posted

技术标签:

【中文标题】离子存储和原生存储的区别?【英文标题】:Difference between Ionic Storage and Native Storage? 【发布时间】:2018-12-24 22:24:40 【问题描述】:

我实际上在使用离子存储。我听说了 Ionic Native Storage 我不知道它们之间的确切区别。首选使用哪一个?

【问题讨论】:

【参考方案1】:

它们的用途基本相同,都使用键/值来存储项目,但我认为离子存储更好,我会告诉你为什么。

Native Storage 需要并且只能与安装的插件一起使用,因此如果没有插件或者它是 web 应用程序,用户将无法使用该存储。使用它是因为 ios 可能会在内存不足时删除存储的数据。

Ionic Storage 以不同的方式工作,您可以将值保存在 IndexedDB 中,这是浏览器的一种存储类型,但是如果您安装了 SQLite 插件,它会自动优先将您的数据保存在 SQLite 中,所以iOS内存不足时不会丢失。

所以当使用 SQLite 时,如果在作为 web 应用程序运行的浏览器中,用户仍然可以保存数据,因为由于 web 中没有插件,它将使用 IndexedDB,如果没有 IndexedDB,那么它将使用 localStorage .

您无需学习 SQLite 即可使用插件进行保存,Ionic Storage 将为您完成所有工作,您只需像使用原生脚本一样使用键/值或本地存储。

哪一个更受欢迎?这完全取决于您,但我看到了 Ionic Storage 的更多优势。

查看Ionic Storage Docs。

希望这会有所帮助。

【讨论】:

【参考方案2】:

主要区别在于: Native Storage 是一个 Cordova 插件,因此只能在设备中使用。它比设备上的 Ionic Storage 快一点,因为它使用设备的原生函数来存储 Key/Value 数据。

Ionic Storage 不是 Cordova 插件,是一个 javascript 库,可以在设备和导航器中使用。

它们之间没有太大区别,我更喜欢Ionic Storage,因为我可以在开发过程中在浏览器上实现更快的测试。

【讨论】:

【参考方案3】:

现在我使用 ionic 4,我遇到了 @ionic/storage 模块的令人不快的延迟,但在我切换到 本机存储 后,我得到了更好的性能.顺便说一句,您仍然可以在使用 ionic cordova run browser 命令而不是 ionic serve 命令的浏览器进行测试时使用它。

所以我想说的是,原生插件总是在性能方面获胜。

最好的祝福

【讨论】:

谢谢你...毕竟这么久了。是的,自从 ionic 4 到来后,我就开始使用本机存储了

以上是关于离子存储和原生存储的区别?的主要内容,如果未能解决你的问题,请参考以下文章

离子本机存储: storage.getItem() 不起作用[重复]

云原生存储和云存储有什么区别?

离子存储和变量

实际场景中,云原生存储面临的 7 个挑战

未定义对象数组的离子存储

离子存储在承诺中未定义?