【问题标题】:What could be causing transaction for indexeddb to not work in my code是什么导致 indexeddb 的事务在我的代码中不起作用
【发布时间】:2023-02-08 06:53:58
【问题描述】:
var database = window.indexedDB.open("myTestDatabase", 3);

database.onerror = function(event) {
    alert('Error creating database');
}

database.onupgradeneeded = function(event) {
    var db = event.target.result;

    console.log(1);
    //
    if (!db.objectStoreNames.contains("data")) {
        //Add to indexDB
        db.createObjectStore("data", {
            keypath: "data"
        });
    }
}

//If the database is creaed run.
database.onsuccess = function(event) {
    var db = event.target.result;

    var transaction = db.transaction(["data"], 'readwrite');
    //More code here to store data into indexeddb
}

运行我的代码时,遇到以下错误:Uncaught NotFoundError:无法在“IDBDatabase”上执行“事务”:找不到指定的对象存储之一。

查看 indexeddb 时,会创建“myTestDatabase”,但不会创建“data”对象库。这可能是什么问题?它有时会起作用,但有时会失败。

【问题讨论】:

  • 只有在升级处理程序运行时才会创建商店。升级处理程序仅在版本增加时运行。您没有始终如一地增加版本。了解非阻塞 javascript 将阐明原因。

标签: javascript indexeddb


【解决方案1】:

将版本从 1 增加到 2,对我有用 const openRequest = window.indexedDB.open('purple_score', 2);

【讨论】:

    猜你喜欢
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 2019-09-17
    • 2014-01-23
    • 2013-08-06
    • 2021-07-09
    • 2021-03-17
    相关资源
    最近更新 更多