WebSQL 或 LocalStorage - iOS / Cordova / JavaScript
WebSQL or LocalStorage - iOS / Cordova / JavaScript
我们只是在重新设计 1 年前构建的应用程序。我们想改进我们应用程序中的一些步骤并加快速度。现在我们的登录过程最多需要 15 秒。有很多数据保存在我们的 WebSQL 数据库中。
我们试图将所有无意义的数据保存到 localStorage 中,该过程现在最多需要 2 - 3 秒,这比我们的 WebSQL 解决方案快得多。
所以现在我想知道为什么会这样,并查看了 WWW。如果我们现在想把我们整个流程从WebSQL改成LocalStorage,有什么需要考虑的吗?
也许有一个很棒且快速的 cordova storagePlugin - 我没有找到那个,你知道吗?
与使用 WebSQL 数据库相比,localStorage 是保存数据的好方法吗?
提前致谢!
本地存储的主要限制是存储容量。在 iOS 上,每个应用程序的容量限制为 5Mb,因此如果您要存储大量数据,很快就会达到此限制。对于 WebSQL,iOS 为您提供 50Mb。有关跨平台的存储容量,请参阅 this page。
您可能需要考虑使用 lawnchair as an abstraction layer; it has a series of adapters 之类的东西,这样您就可以在代码中保持相同的接口,并尝试通过适配器机制在不同的存储中进行交换。默认情况下,它使用本地 (DOM) 存储,但具有用于 WebSQL 和 IndexedDB 等的适配器。
如果您需要大量存储容量,请考虑使用 this plugin 之类的东西,它允许您使用具有无限容量的本机 SQLite 数据库。
如果性能是个问题,您可能想要放弃抽象层(例如 lawnchair)并手动编写 SQL 来与数据库交互,以便对其进行优化。我创建了 this example project,它使用上面的 SQLite 插件和优化的 SQL。在我的 iPad2/iOS 8.3 上,它能够在大约 1.4 秒内执行 15000 多次插入。
我们只是在重新设计 1 年前构建的应用程序。我们想改进我们应用程序中的一些步骤并加快速度。现在我们的登录过程最多需要 15 秒。有很多数据保存在我们的 WebSQL 数据库中。
我们试图将所有无意义的数据保存到 localStorage 中,该过程现在最多需要 2 - 3 秒,这比我们的 WebSQL 解决方案快得多。
所以现在我想知道为什么会这样,并查看了 WWW。如果我们现在想把我们整个流程从WebSQL改成LocalStorage,有什么需要考虑的吗?
也许有一个很棒且快速的 cordova storagePlugin - 我没有找到那个,你知道吗?
与使用 WebSQL 数据库相比,localStorage 是保存数据的好方法吗?
提前致谢!
本地存储的主要限制是存储容量。在 iOS 上,每个应用程序的容量限制为 5Mb,因此如果您要存储大量数据,很快就会达到此限制。对于 WebSQL,iOS 为您提供 50Mb。有关跨平台的存储容量,请参阅 this page。
您可能需要考虑使用 lawnchair as an abstraction layer; it has a series of adapters 之类的东西,这样您就可以在代码中保持相同的接口,并尝试通过适配器机制在不同的存储中进行交换。默认情况下,它使用本地 (DOM) 存储,但具有用于 WebSQL 和 IndexedDB 等的适配器。
如果您需要大量存储容量,请考虑使用 this plugin 之类的东西,它允许您使用具有无限容量的本机 SQLite 数据库。
如果性能是个问题,您可能想要放弃抽象层(例如 lawnchair)并手动编写 SQL 来与数据库交互,以便对其进行优化。我创建了 this example project,它使用上面的 SQLite 插件和优化的 SQL。在我的 iPad2/iOS 8.3 上,它能够在大约 1.4 秒内执行 15000 多次插入。