gpt4 book ai didi

javascript - 计算 indexedDB 中对象存储中的记录在 Firefox 中不起作用

转载 作者:行者123 更新时间:2023-11-30 19:49:02 25 4
gpt4 key购买 nike

我一直致力于基于 IndexedDB 的项目,我注意到 count() 方法在 Firefox 上无法正常工作。我不知道我是否遗漏了任何概念,因为我是新手,但我已经在 Chrome 和 Opera 上对其进行了测试,它运行良好。

代码的简化版本是:

var database;
var openDB = indexedDB.open("newDB", 1);

openDB.onupgradeneeded = function () {
database = openDB.result;
var newStore = database.createObjectStore("example", { keyPath: "id", autoIncrement: true });
newStore.createIndex("name", "name", { unique: false });
}
openDB.onsuccess = function () {
database = openDB.result;
var tx = database.transaction("example", "readwrite");
var store = tx.objectStore("example");
store.put({ name: "el_1" });
store.put({ name: "el_2" });
store.put({ name: "el_3" });
store.put({ name: "el_4" });
store.put({ name: "el_5" });

var transaction = database.transaction(['example'], 'readonly');
var objectStore = transaction.objectStore('example');
var counter = objectStore.index('name').count();
counter.onsuccess = function () {
total = counter.result;
console.log(total);
}
}

一切正常,除了方法 count() 中的属性结果返回 0,而不是 5。数据库已创建,对象存储在 objectStore 中。

最佳答案

我发现了问题。当我重写代码以将其发布在这里时,我首先更改了一些内容以使其更易于理解。问题是我的代码曾经是:

   var createStore = database.createObjectStore("example", { keyPath: "id", autoIncrement: true });
createStore.createIndex("id", "id", { unique: true});
createStore.createIndex("name", "name", { unique: false });

然后:

    var counter = objectStore.index('id').count();

我想 Chrome 和 Opera 可以接受,但 Firefox 不允许。 ^^

关于javascript - 计算 indexedDB 中对象存储中的记录在 Firefox 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54661879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com