javascript - IndexedDB - 检测是否建立索引

标签 javascript performance indexing indexeddb offline-caching

我有一个场景,初次使用 Web 应用程序可能需要下载约 2K 条记录并将其存储在 IndexedDB 中以供离线使用。在我的测试中,一旦加载所有记录并建立索引,性能似乎很快。但是,有一段时间它明显处于索引状态且没有响应。这是可以理解的,但是有没有办法找出 IndexedDB 是否“正在建立索引”或某种程度的东西?我似乎在 IndexedDB 文档中找不到任何内容。如果他们意识到这一点,这样的事情将会提供更好的用户体验。

最佳答案

规范中确实没有任何关于能够观察索引的内容;它旨在在幕后发生,并且仅在完成时才可观察到(例如,如果事务由于现有数据中的关键约束错误而提交或中止)。如果您发现特定浏览器在创建新索引时变得无响应,您应该针对浏览器提交错误。

至少在 Chrome 中,createIndex() 调用应该是“即时”的,并且在幕后通过遍历对象存储中的值来计算索引条目来异步填充索引。这种情况发生在调用 createIndex() 的同一进程和线程中,因此将与同一线程上的其他事件竞争(例如,如果我们没有适本地确定工作的优先级,您可能会看到动画变慢)。

关于javascript - IndexedDB - 检测是否建立索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39197927/

相关文章:

python - 如何在 Pandas 的查询中使用变量?

javascript - 使用 React 提交表单,无需状态

javascript - 为什么我的组件绑定(bind)在其 Controller 中未定义?

java - 创建一种通过网络发送整数的有效方法。传输控制协议(protocol)

android - 具有相同内核的 ARM SoC 之间有很大差异吗?

linux - 使用 perf 查找线程瓶颈并优化挂墙时间

mysql - 如何在查询之间使用索引

oracle - 在 Oracle 上使用 JOIN 优化 SELECT 中的计数

javascript - 如何在 jQuery 中向 DOM 添加元素数组?

javascript - 对边半径