【问题标题】:Cordova synchronous permanent local storageCordova 同步永久本地存储
【发布时间】:2017-08-03 20:40:00
【问题描述】:

根据我的研究,localStorage 对于 iOS 上的 Cordova/Phonegap 应用程序不可靠,因为它可以在设备内存不足时被操作系统刷新。

由于我的整个代码都是同步编写的,而且我没有闲暇时间为这个特定项目重写代码,我正在寻找一个必须同步localStorage 的直接替代品,不是 a同步的,它将持久存储存储的数据而不会受到刷新的威胁。

【问题讨论】:

    标签: cordova local-storage


    【解决方案1】:

    没有同步解决方案。 Cordova 存储插件由于底层技术的性质而具有异步性,用于桥接 Web 和本机功能。 Webview 支持的存储选项本质上也是异步的。

    您最好的选择是转换为异步存储 API。我知道你不想这样做,但你可以通过使用 ES2017 的 async/await 功能加快速度,然后使用 TypeScript 或 Babel 转换为 ES5。此功能要求您使用的 API 返回 Promise,但通常有很多选项可供选择。

    【讨论】:

    • 还是没有同步存储方式?
    【解决方案2】:

    我会尝试使用JSStore。它不是为 Cordova 制作的,我不完全确定它是否有效,但值得一试。当您指定 onSuccess 参数时,它会返回 数据,而不是像大多数数据持久性 API 调用那样的承诺。

    我只建议在像您这样的情况下使用它,在这种情况下,需要进行大量重构才能使用一种使用异步 API 调用的持久性形式。即使这样,您也应该测试应用程序的性能损失。

    编辑:根据Cordova's storage options page,IndexedDB,JSStore 中使用的持久模式,仅适用于 Windows、Blackberry 10 和 Android (4.4+),所以它不能解决你的问题。这意味着唯一的出路是重构代码以适应异步 API。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 2020-03-20
      • 1970-01-01
      • 2017-01-12
      相关资源
      最近更新 更多