问题标签 [dexie]

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 投票
0 回答
163 浏览

dexie - 如何使用 Dexie 使用 Order Form 同步 MSSQL 数据库

我正在寻找使用 Dexie 创建 HTML5 Online Order 应用程序。后端数据库是 MSSQL。我想连接到 SQL 数据库,将数据从一个或多个表加载到 IndexDB 中,并为用户提供一个订购单以选择要订购的项目,然后能够提交订购单。

Dexie 是否可以做到这一点,我将如何实施双向同步以保持库存总计最新?

如果有人能指出我需要的部分,我可以自己研究。我也不介意一些例子。

我感谢提供的任何帮助。

问候,

0 投票
1 回答
682 浏览

javascript - 为查询结果选择特定属性

我有以下查询:

现在e将文件(e.binary)保存为二进制字符串。在每个我只想处理一组特定的属性而不是 e.binary,因为它会减慢应用程序的速度。有没有办法选择一组返回的属性?还是只能返回完整的行?

提前致谢 :)

0 投票
1 回答
273 浏览

dexie - 如何使用滚动缓冲区附加到 dexie 条目(在不分配 GB 内存的情况下存储大条目)

在给 Dexie 的作者 (David Fahlander) 发送电子邮件后,我被重定向到这里。这是我的问题:

有没有办法附加到现有的 Dexie 条目?我需要在 dexie 中存储大的东西,但我希望能够用滚动缓冲区填充大条目,而不是分配一个巨大的缓冲区然后进行存储。

例如,我有一个 2gb 的文件要存储在 dexie 中。我想通过一次将 32kb 存储到同一个存储中来存储该文件,而不必在浏览器中分配 2gb 的内存。有没有办法做到这一点?put 方法似乎只覆盖条目。

0 投票
0 回答
531 浏览

javascript - 在 indexeddb 上动态创建对象存储好吗?

我是 indexeddb 的新手。考虑我有一个独特的页面。该页面将有大量我必须保存的记录或对象(50k+)。那么如果我将所有这些来自不同页面的记录放到一个对象存储中,这会影响查询性能吗?(考虑存储是索引的)另一个选项是动态创建对象存储并查询相应的对象存储。所以我只是用 dexie 试了一下。 https://jsfiddle.net/sju8vj5h/

但这不适用于第二次运行。我发现,要动态添加商店需要更改版本并且升级会触发。那么这是动态添加对象存储的好模式吗?我已经阅读过IndexedDB - Dexie JS : Dynamically create stores但这对这种情况没有帮助。

0 投票
2 回答
1315 浏览

javascript - 如何在 dexie 中读取当前数据库版本号?

Dexie中,当您需要升级模式或表架构时,您使用db.version(X)方法。

然后库将检查用户的浏览器是否缓存了以前的版本并执行适当的升级步骤。

但我找不到如何手动读取当前用户的数据库版本。

因此,例如,如果故意编写这个破坏代码:

db.version(1).stores(/* my schema */) // 删除这段代码
db.version(2).stores(/* my schema */)

该库将礼貌地抛出一个错误,指出用户当前拥有的版本(显然,1)没有架构。

但是有没有办法读取用户的确切版本?

它可能对调试有用!

0 投票
1 回答
365 浏览

dexie - Is there any way to store objects as Compound index in dexie?

I`m using dexie wrapper library for indexedDB. I tried several ways to store objects in as Compound index in a table. Here is my table .

Here is what I tried. But its not successful. and given error "DataError: Failed to execute 'only' on 'IDBKeyRange': The parameter is not a valid key. Error: Failed to execute 'only' on 'IDBKeyRange': The parameter is not a valid key"

0 投票
1 回答
397 浏览

indexeddb - Dexie:如何跨多个浏览器引用一个dexie db?

设想:

  1. 用户在 Firefox 中打开 Dexie webapp。
  2. 用户写入一些 Dexie 数据并关闭 Firefox。
  3. 用户在 Chrome 中打开相同的 web 应用程序。
  4. 用户可以看到之前在 Firefox 中添加的 Dexie 数据。

德西能做到吗?

如果 Dexie 总是为每个浏览器创建一个数据库,那么一种解决方法可能是读取设备上所有相关的 Dexie 数据库,然后同步它们。我将在此期间单独研究。

下面只是我的 webapp 的开始,展示了我当前如何构建 Dexie 数据库的基础知识。一切正常。唯一的问题是,无论我使用哪种浏览器,我都希望该应用程序始终读取相同的数据库。

0 投票
1 回答
318 浏览

indexeddb - Dexie 数据库位置

我从较早的问题中看到 Dexie 数据是单个浏览器的本地数据。有没有办法访问每个浏览器的 Dexie 数据?

我知道我可以直接访问每个浏览器的 IndexedDB SQLite 数据库,并且可能通过这种方式找到 Dexie 存储的数据。我只是希望有一种方法可以在一个浏览器中使用 Dexie 代码来查看任何其他浏览器的 Dexie 数据。

谢谢。感谢建造 Dexie 的工作人员。这是一个很棒的工具。

0 投票
0 回答
62 浏览

javascript - 重新排列 Dexie Json 状结构

我的问题集中在 Dexie 库上,但我想它可能对 JavaScript 中的每个类似 json 的结构都有效,所以这里是:

我有多个由 IndexedDB 库(Dexie)在本地内存上创建的表,每次添加记录时它使用以下结构:

当我想修改数据时,代码如下所示:

我想减少代码以仅使用这些结构中的每一个。如果只有 2 张桌子就可以了,但是大约有 12 张桌子,而且会占用很多空间(并且在发生变化时必须更改两次)。

由于代码或多或少相同,我想添加一个变量,该变量将在添加或修改括号内包含所有这些字段,但我不知道该怎么做。此外,在修改代码中,不包括每个表的第一个值(它用于修改条件)。

我也考虑了一个 javascript 函数,但同样 - 我不知道在这种情况下该怎么做。

有什么建议么?

非常感谢

0 投票
1 回答
498 浏览

indexeddb - 使用 Dexie,bulkPut 是否应该像 put() 一样将标识主键值分配给正在保存的对象?

我正在使用 Dexie 来处理 IndexedDB。我在用着:

让 PK LocalActivityId 自动递增/分配。

当我使用put时:

它使用数据库中的新值将 LocalActivityId 分配给我的对象,但是当我尝试 bulkPut 时,它不会这样做:

bulkPut 也只返回最后一个新的 ID,所以我没有简单的方法来获取刚刚插入的所有对象的 ID。

这是预期的行为吗?

如果这是意料之中的,如果人们尝试批量插入对象并且需要知道分配给这些对象的新 ID,他们会怎么做?