问题标签 [indexeddb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
8508 浏览

html - 哪些版本的 chrome/opera/firefox 支持 IndexedDb?

正如我在此页面的评论中看到的那样,我无法理解Chrome是否真的支持IndexedDB

我要为 chrome/opera/firefox 编写一个用户脚本,并决定不使用localstorage,我只想尝试 IndexedDB 而不是 localstorage,但在开始编写脚本之前,我必须知道

哪些版本的 chrome/opera/firefox 支持 IndexedDb?

谢谢。

0 投票
1 回答
1599 浏览

javascript - 使用 indexedDB 存储 three.js 网格对象

利用本教程,我试图查看是否可以通过使用 indexedDB 缓存大型网格来节省带宽。

所以在我正在做的加载器回调函数中......

但是,将包含对象的最后一行object添加到数据库会导致以下错误。

Uncaught Error: DATA_CLONE_ERR: DOM Exception 25

我不确定这到底意味着什么,但一定有办法解决它,不是吗?

0 投票
2 回答
11459 浏览

html - Html5 IndexedDB - 通过其键检索值

在大多数教程中,它展示了如何通过使用游标迭代它们来从对象存储中检索所有记录。但是如何通过键“myKey”从对象存储中检索值?

0 投票
3 回答
5507 浏览

javascript - 为什么 window.indexedDB 评估为未定义?(如何使用 IndexedDB?)

我在搞乱 HTML5 的 IndexedDB。

下面是来自http://html5-demos.appspot.com/static/html5storage/index.html#slide31的一个简单代码 ,它在 Chrome 或 Firefox 中对我不起作用,它在 Firebug 中给了我这个消息:

未捕获的类型错误:无法调用未定义的方法“打开”

对于代码的第一行,即:

有人可以帮我完成这项工作吗?

有一个运行代码的 JSFiddle


我知道这适用于浏览器,因为此交互式幻灯片有效:http ://html5-demos.appspot.com/static/html5storage/index.html#slide34

0 投票
2 回答
1192 浏览

javascript - indexedDB setVersion 请求被阻止?

我正在尝试将 indexedDB 与jax webGL 框架一起使用,但由于某种原因 setVersion 不起作用。

这是相关的咖啡脚本

附加到触发的版本请求的唯一处理程序是 onblocked,但我什至不确定请求被阻止意味着什么或为什么会发生这种情况......

为什么版本请求会被阻止?

0 投票
1 回答
1440 浏览

html - 跨浏览器的 IndexDB 支持情况如何?

显然 SQL 存储已被 W3C 弃用(谢天谢地),并且 IndexedDB 似乎是推荐的。另一方面,我遇到了以下情况:

var indexedDB = window.indexedDB || window.webkitIndexedDB || 窗口.mozIndexedDB;

这与我有关。

支持IE吗?各种浏览器的支持程度如何?我似乎找不到列出此信息的页面。

0 投票
1 回答
9461 浏览

javascript - IndexedDB 的概念问题(关系等)

我正在写一篇关于 Web 应用程序的离线能力的论文。我的任务是通过具有服务器端关系数据库和客户端和服务器之间的 Ajax/JSON 流量的 Web 应用程序来展示离线存储的可能性。我的第一个实现使用了 localStorage 的方法,将每个 Ajax 响应保存为值,并将请求 URL 作为键。该应用程序运行良好。然而,在下一步中,我想(即论文要求)使用客户端数据库实现更高级的版本。由于服务器维护一个关系数据库,Web SQL 数据库将是直观的选择。但是,正如我们所知,该标准已被弃用,我不想使用未来不确定的技术。因此,我想使用 IndexedDB 来实现客户端数据库逻辑。很遗憾,

我的任务似乎相当简单: 使用 IndexedDB 在客户端实现服务器端数据库,以复制曾经从服务器获取的所有数据。使这变得不那么简单的问题是:

  • 服务器端数据库是关系型的,IndexedDB (或多或少)是面向对象的
  • 没有直观的方法来同步客户端和服务器端数据库
  • 没有直观的方法来实现 IndexedDB 中使用服务器上的外键和 JOIN 实现的关系

现在,我有一个概念,我真的很害怕开始实施。我考虑为服务器数据库中的每个表创建一个对象存储,并手动对不同对象存储中的关系对象进行编程。在我的应用程序中,简而言之,它管理一所大学的课程,我有 7 个对象存储。

我想通过一个来自服务器的 JSON 响应示例来展示我的想法(/* 这些是注释 */):

使用 IndexedDB 存储数据的算法会将应用于对象存储的每个对象存储在适当的对象存储中,并用对这些对象的引用替换这些对象。例如,上面的课程对象在对象存储“课程”中如下所示:

然后使用 IndexedDB 检索数据的算法将执行以下操作(我模糊地想到了一个递归模式):

很明显,这种实现会非常麻烦,尤其是由于 IndexedDB 的异步特性。它还会导致对数据库的许多不同事务只是为了检索课程对象,并且性能会受到很大影响(我真的不知道 IndexedDB 事务的性能如何)。

我怎样才能做得更好,更简单?

我已经看过这些代表类似问题的线程:link1link2。我在这些中看不到任何更简单的解决方案。此外,由于几个原因,我宁愿避免使用 IndexedDB 包装器框架。

我还可以想象,对于我的问题,我完全走错了 IndexedDB 的轨道。

编辑:

我最终采用我的方法将引用存储在 IndexedDB 中的对象本身中。在具有大量引用的大量数据的情况下,这可能会导致一些性能问题。然而,如果巧妙地使用,在大多数情况下可以避免大量的迭代和数据库命中,并且不需要将复杂的数据库模式存储在内存或 IndexedDB 本身中。

一般来说,我必须说,我的印象是我在某种程度上误解了 IndexedDB 作为无模式数据库的动态和直接的想法。但无论如何,我用 JavaScript 实现了所有东西,它工作正常,没有任何不一致的机会。

0 投票
0 回答
770 浏览

indexeddb - 使用 IndexedDB 进行全文搜索

任何想法何时将全文搜索作为 IndexedDB 规范的一部分?是否可以像在 SQL 中一样模拟 %LIKE% 查询?这似乎是一个重要的限制。

0 投票
5 回答
3974 浏览

indexeddb - 如何从 IndexedDB 获取前 1 行

有没有办法在 IndexedDB 中只获得第一行?我找不到任何东西。

0 投票
2 回答
7082 浏览

html - 在 IndexedDB 中保存 ArrayBuffer

如何将二进制数据(在 ArrayBuffer 对象中)保存到 IndexedDB?

IndexedDB 规范没有提到 ArrayBuffer - 这是否意味着不支持(我必须将 ArrayBuffer 打包为字符串或数组?)。