2

基于 SQLite 的本地 DB api 正在下降。根据 w3c,它必须被替换为 indexedDB。但是 IndexedDB API 仍在进行中,所以还没有实现。对于需要大量数据库存储的应用程序......暂时;什么是替代方案?最未来的证据是什么?

本地存储不是选项,因为我需要存储结构化(关系)数据以及很多数据。基于云的替代方案也超出了范围。我需要一些本地的东西。

4

3 回答 3

4

我会说 indexeddb 是要走的路。IE、FF 和 chrome 都已经支持它,但对于移动设备它仍然是一个地狱。我建议你现在继续使用 websql,我认为 phonegap 会继续支持它一段时间。

规范的问题是,没有标准的查询方式。每个供应商都使用 SQLite,但不能在一个产品上构建规范,那将非常危险。同样在大多数情况下,不同的数据库供应商意味着不同的 SQL 方言。这也与标准的工作方式相矛盾。这意味着您必须检查您正在使用哪个数据库,然后使用不同的方言。这就是为什么他们决定使用称为 indexeddb 的统一 API。

所有使用 SQL lite 之类的数据库将数据存储在仅用于查询的接口中的浏览器都是 indexeddb API,因此 indexeddb 类似于 odbc。只有它非常简单和苗条。如果您想了解有关 indexeddb 的更多信息,请查看我的博客,我有几篇关于它的博文。是一个很好的开始。它解释了 indexeddb 的基础知识。

于 2012-09-26T09:28:29.060 回答
0

本地存储不是选项,因为我需要存储结构化(关系)数据,而且很多

我过去曾问过类似的问题,在某些时候我放弃了尝试寻找本地解决方案。我最终使用了这个插件

优点是:

  1. 使用 WebSQL 时,您将不受 iOS 平台上的配额限制 (~5Mb) 的限制。
  2. 您可以分发预填充的数据库。(我知道 WebSQL 也有一种解决方法,但它并不总是有效。)
  3. 您可以加密您的数据库。(我不知道你是否需要这个)
  4. 没有这里提到的持久性问题。

缺点是:

  1. 还没有适用于 Windows 的实现。您可能会考虑为 Windows 编写自己的插件。
  2. 随着 Phonegap 2.1,他们开始在 iOS 平台上支持 ARC。据我测试,该插件目前不支持 ARC。你需要调整它。
于 2012-09-26T08:21:25.343 回答
0

为什么不试试我自己的开源库的IndexedDB 包装器呢?它适用于 IndexedDB API 的旧标准和新标准,也适用于 WebSQL。包装 API 非常以 IndexedDB API 为中心,并计划支持每一个功能。

于 2012-09-26T09:58:45.917 回答