问题标签 [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.
indexeddb - 如何将数据从 Dexie 同步传递到 Vue?
事实是我正在使用 Dexie + VueJs,我正在打印一个包含记录列表的表格,以及一个用于计算相关记录的附加字段,但是,我不知道如何以一种简洁的方式进行操作.
我想做的是:
scope - 如何使用“.each”方法产生的数据结果?
我使用Dexie.js(一个IndexedDb
wapper)。
我试过生成这样的 HTML:
但上面的代码什么也没输出。
但是,当我将console.log(html.join(''))
回调放入.each
:
为什么我的第一个代码片段没有显示任何输出?
javascript - 防止 IndexedDB 中出现重复的 Blob 对象
是否有内置解决方案来防止Blob
不同记录中的重复对象IndexedDB
?
假设我有一个音乐商店的模式:id, title, album, artwork
,我想将同一张专辑中的 2 首歌曲添加到该商店(因此它们很可能具有相同的艺术品资产)。是否有一种内置方法可以只自动存储一次艺术品?
我试过的:
我试图
unique
在索引中设置一个标志artwork
,但是在插入第二首歌曲(使用)之前和之后检查数据库的大小之后chrome://settings/cookies
,艺术品被存储了两次。然后我尝试将艺术品存储在具有相同标志的单独商店中(仅
id
作为artwork
模式),但这也不起作用。
我是否unique
以任何方式滥用旗帜?Blob
对象不支持吗?
javascript - Dexie 2.0 beta - 它如何与异步等待一起工作?
Dexie 2.0 beta 如何与 async/await 一起工作?我正在阅读源代码,但我仍然很困惑它是如何在没有猴子修补任何本机功能的情况下传播区域的。有人可以给我一个关于它是如何工作的高级概述吗?
我对使用 Dexie 很感兴趣,任何信息都会很棒!
google-chrome - 在此上下文中拒绝访问索引数据库 API
当我尝试使用 Service Worker 在 Chrome 中访问 IndexedDB 时出现异常。我没有使用网络服务器,所以我在浏览器上本地执行我的 html 文件,所以我的 url 类似于
file:///D:/Dev/web/sample-sw/index.html
我不知道为什么该代码适用于 Firefox,但不适用于 Chrome。
这是一个例外:
未处理的拒绝:OpenFailedError:SecurityError 无法在“IDBFactory”上执行“打开”:在此上下文中拒绝访问索引数据库 API。
我的 index.html 是这样的:
我很感激一些帮助。谢谢你。
javascript - Dexie.js - 映射时如何获取实体
我对 Dexie.js 和 Promises 很陌生,所以请耐心等待。
如何在 Map 函数中获取实体?我有以下方法负责在我的 IndexedDB 中进行数据源查找。
在 DataBase.GetContact 方法中,我想连接到数据库(IndexedDB),通过 id 搜索实体,返回它(来自 IndexedDB 的对象),然后在映射时使用对象结果获取其值。
ios - 有没有办法重建 Dexie 密钥?
我有一个使用 Dexie 的工作应用程序。升级到 iOS 10.3 后,按键查找不起作用。(这实际上是一个 indexeddb 问题,而不是 Dexie 本身,我敢肯定。)我仍然感到震惊,但我已经能够通过执行 db.table.each(function(p) { },并且键中使用的字段在那里并且正确。但是如果我执行 db.table.get(primarykey, function(p) {} 或 db.table.where("somekey").equals(nonprimarykey).first( function(p) {} p 未定义。
我尝试做 .db.table.each ,然后将每个检索到的对象放回去,看看是否会重建密钥,它在 Firefox 中工作,但在 Safari 或 Chrome 中不起作用(仍然无法通过密钥检索)。
我还尝试指定具有相同密钥结构和空升级的新版本,但没有做任何事情(但我只在 Chrome 中尝试过)。
如果数据库是在安装 10.3 之后创建的,一切都很好,但我希望我的客户不必删除他们的数据库。
有什么办法可以在不丢失数据的情况下修复它?
dexie - Steps required to interract with IndexedDB via Dexie
Let's say I create a very simple datastore using the steps below:
var db = new Dexie('MyDatabase');
db.version(1).stores({ friends: 'name, age' });
db.friends.add({ name: 'Camilla', age: 25 });
Now, let’s say the user closes their browser and comes back a day later and we need to query the data that we already saved in a datastore that should already exist. Do I need to include both line 1 and line 2 each time before I query the datastore or insert new rows? I’m confused about when I’m required to execute line 2 – is it basically before I do anything to/with the datastore?
javascript - 在 Dexie 迭代中使用 Promise
我不是一个真正的承诺忍者,我知道我做错了什么。但是我找不到我所遇到的一些特殊/相似的问题。
问题:我为 IndexedDB 使用 Dexie.js 包装器,它是异步的。我有一个全局数据库,它指向其他一些 dexie 数据库。
我已经用一种可能很奇怪的形式为 SO 重写了它,但最终目标是我可以使用数组result
来处理一些更新。但是,由于它是异步的,因此它始终为空,直到您在控制台中检查它,它永远不会为空。如何将其重写为同步?
dexie - 关闭浏览器时是否需要显式关闭数据库,尤其是在使用可同步时?
我将 Dexie.Syncable与文档页面设置中的示例 WebSocketSyncServer.js 和 WebSocketSyncProtocol.js 一起使用为服务器和客户端,但是如果我刷新页面,我会在服务器上获得“ECONNRESET”。
如果我使用明确关闭数据库db.close();
或使用断开连接,db.syncable.disconnect(url);
我将不再获得“ECONNRESET”。这对我来说很有意义,但在你的文档中db.close()
你说你真的不需要考虑调用这个函数。
我应该只使用db.syncable.disconnect(url)
而不担心 db.close()
即使您不使用 db.syncable 为什么您不想在用户关闭/刷新浏览器时关闭数据库?