Javascript Cordova持久和同步存储

Javascript Cordova持久和同步存储,javascript,cordova,storage,synchronous,hybrid,Javascript,Cordova,Storage,Synchronous,Hybrid,我用Cordova开发了一个混合应用程序。我使用localStorage在设备上保存一些数据。现在我需要更好的持久性存储方法。另外,我正在寻找一个同步库。你有什么建议吗 我只是找到Persisto()。我可以和科尔多瓦一起用吗 我只是找到了Persito。我可以和科尔多瓦一起用吗 您可以将它与Cordova一起使用,但它似乎只是localStorage的包装器,因此与直接使用localStorage相比,它没有更好/更持久的效果 如果您的Cordova应用程序针对的是iOS,那么您应该知道,存储

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

我只是找到Persisto()。我可以和科尔多瓦一起用吗

我只是找到了Persito。我可以和科尔多瓦一起用吗

您可以将它与Cordova一起使用,但它似乎只是localStorage的包装器,因此与直接使用localStorage相比,它没有更好/更持久的效果

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

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

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

对于不会被iOS一时兴起地抹去的可靠持久存储,您可以通过插件使用本机SQLite DB。 对于它的简单接口,您可以使用包装器,例如适配器

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

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

您可以使用indexeddb实现更好的持久性存储。但是所有的API都是非同步的,实现起来非常复杂

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

您可以使用jsstore同步执行db代码。它提供类似sql的API,并且所有API都是同步的。所以你不必担心得不到最新的数据等等

所以,如果您调用update,请依次选择api,然后将执行第一个更新api,然后选择api

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

看看这里-

如果您正在寻找一个只存储密钥对值的库,那么可以使用KeyStore。在这里你不需要做任何设置


在这里查看keystore-

我真的不明白为什么要将我的JS修改为async来存储两行数据。本地饲料、本地存储、安全存储等。它们都是一样的。。有几十个异步库。甚至没有一个同步和持久化库。这不是火箭科学。我将继续使用localStorage,直到Cordova结束这种胡说八道并开发出同步方法。无论如何,谢谢。数据库接口和Cordova JS本机网桥本质上是异步的。如果它是如此简单,只是“开发一个同步方法”,那么现在就已经完成了。你可以继续使用本地存储,但需要注意的是,iOS可能会在任何时候删除它。不过,这不是一门火箭科学。也不用担心我的数据。当设备在线时,我将把它们备份到Firebase上。
不过,这不是火箭科学。
你说得对:这是计算机科学,不是航天器的设计和开发——也许你把这两者混淆了
当设备联机时,我将在Firebase上备份它们
。祝你好运…谢谢你的回答。据我所知,localStorage和Indexeddb非常相似。JSstore在IOS应用程序更新后还能存活吗?indexedb和localstorage完全不同。查看这些以了解更多信息-。JsStore是一个indexedb包装器,它只是使indexedb易于使用。因此,这取决于不同的操作系统,它们在升级时是否保留indexeddb数据。对于这种情况,您可以随时与服务器同步或将数据存储在json文件中。谢谢。看看科尔多瓦官方文件-。他们说本地存储将被清除,但没有关于indexeddb数据清除的任何信息。查看他们的缺点部分。@Ujjwal Kumar Gupta我可以明确确认,当设备空间不足时,iOS会在Cordova应用程序的Webview中擦除localStorage、IndexedDB和WebSQL数据。要测试这一点非常简单:在包含部分数据的iDevice上安装Cordova应用程序,然后在设备中填充电影,直到满为止。请注意,在某个时刻,主屏幕上会出现“Cleaning..”代替您的应用程序名称,当您重新打开应用程序时,您的所有数据都会消失。我以前就发现了这一点,现在我将所有重要数据存储在原生SQLite数据库中,该数据库不受iOS异想天开的清理的影响