WebSQL或LocalStorage - iOS / Cordova / JavaScript

时间:2015-06-25 07:45:58

标签: javascript ios html5 cordova local-storage

我们只是重新设计一年前建立的应用程序。我们希望改进应用程序中的一些步骤并加快一些速度。现在我们的登录过程最多需要15秒。有很多数据可以保存在我们的WebSQL DB中。

我们试图将所有数据毫无意义地保存到localStorage中,并且该过程现在最多需要2到3秒,这比我们的WebSQL解决方案快得多。

所以现在我想知道为什么会这样,并看看WWW。如果我们现在想要将整个过程从WebSQL改为LocalStorage,我们还有什么要考虑的吗?

也许有一个伟大而快速的存储线为cordova - 我没有找到一个,你知道吗?

localStorage是一种保存数据而不是使用WebSQL数据库的好方法吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

本地存储的主要限制是存储容量。在iOS上,每个应用程序限制为5Mb,因此如果要存储大量数据,则很快就会达到此限制。使用WebSQL,iOS可以为您提供50Mb。有关跨平台的存储容量,请参阅this page

您可能需要考虑使用lawnchair之类的东西作为抽象层;它有一系列adapters,因此您可以在代码中保持接口相同,并尝试通过适配器机制交换不同的存储。默认情况下,它使用本地(DOM)存储,但具有适用于WebSQL和IndexedDB的适配器。

如果您需要大量存储容量,请考虑使用this plugin之类的东西,它允许您使用容量不受限制的原生SQLite数据库。

如果性能是一个问题,您可能想要去草坪等抽象层并手动编写SQL以与数据库交互,因此您可以对其进行优化。我创建了this example project,它使用上面的SQLite插件和优化的SQL。在我的iPad2 / iOS 8.3上,它能够在大约1.4秒内执行15000多次插入。