Cordova持久和同步存储

时间:2017-12-09 21:11:27

标签: javascript cordova storage synchronous hybrid

我与Cordova开发了一个混合应用程序。我使用localStorage来保存设备上的一些数据。现在我需要更好和持久的存储方法。另外我正在寻找一个同步库。你有什么建议吗?

我找到了Persisto(https://github.com/mar10/persisto)。我可以和Cordova一起使用吗?

2 个答案:

答案 0 :(得分:0)

  

我只是找到了Persisto。我可以和Cordova一起使用吗?

您可以将它与Cordova一起使用,但它似乎只是localStorage的包装器,因此直接使用localStorage不会更好/更持久。

如果您的Cordova应用程序针对iOS,那么您应该知道存储在Webview(localStorage,WebSQL,IndexedDB)中的任何本地持久数据都被视为缓存数据,因此如果设备运行不足,可以随时擦除空间。

  

此外,我正在寻找同步库。你有什么建议吗?

TL; DR:我不认为您会找到更好的存储机制的同步接口,因为更耐用/可靠的机制本质上都是异步的。 最终,最好咬紧牙关并重新编写代码以使用异步存储机制。

对于不会被iOS随意擦除的可靠持久存储,您可以通过cordova-sqlite-storage插件使用本机SQLite数据库。 对于它的简单接口,您可以使用localForagecordovaSQLiteDriver适配器等包装器。

或者,如果您的内容更基于文件,则可以使用cordova-plugin-file将其存储到持久存储位置。

答案 1 :(得分:0)

  

现在我需要更好和持久的存储方法。

您可以将indexeddb用于更好的持久存储。但是所有的api都是异步的,并且实现起来非常复杂。

  

我正在寻找一个同步库。你有什么建议吗?

您可以使用jsstore同步执行db代码。它提供了像api这样的sql,所有的apis都是同步的。所以你不必担心没有获得最新的数据等。

因此,如果您调用update,请依次选择api,然后首先执行更新api,然后选择api。

同样,它不会使您的代码变得不正常,它只是按照您调用的顺序执行代码。

请在此处查看 - http://jsstore.net/

如果您要查找只存储keypair值的库,则可以使用KeyStore。在这里你不需要做任何设置。

在此处查看密钥库 - https://github.com/ujjwalguptaofficial/KeyStore