本地数据库API - 已弃用的替代方案是什么?

时间:2012-09-26 07:21:39

标签: javascript html5 cordova sqlite indexeddb

基于SQLite的本地数据库API已经关闭。根据w3c,它必须被替换为indexedDB。但是IndexedDB API仍在进行中,因此还没有实现。 对于需要大量数据库存储的应用程序......暂时而言;替代方案是什么?最具前途的证据是什么?

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

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:0)

  

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

我过去曾问过类似的问题,但在某些时候我放弃了尝试找到原生解决方案。我最终使用了this plugin

优点是:

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

    1. 目前还没有针对Windows的实现。你可能会想到 为Windows编写自己的插件。
    2. 借助Phonegap 2.1,他们开始在iOS平台上支持ARC。如 就我测试而言,该插件目前不支持ARC。您 将需要调整它。

答案 2 :(得分:0)

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