gpt4 book ai didi

javascript - Indexeddb 中止错误

转载 作者:行者123 更新时间:2023-11-28 09:03:56 27 4
gpt4 key购买 nike

下面是我用于打开 indexedDB 的 Javascript 代码。我之前已经在 Firefox 21 中成功测试过代码多次,但现在我看到 e.target.error.name 中的 indexedDB.open() 函数返回 AbortError。

var openDB = function(dbCallBack) {
var openDB = function(dbCallBack) {
window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;

request = window.indexedDB.open('mgDB');
request.onerror = function(e) {
alert('Error: ' + e.target.error.name + ': Failed to open the database');
dbCallBack(false, false);
};

request.onupgradeneeded = function(e) {
dbCallBack(true, false);
};

request.onsuccess = function(e) {
db = e.target.result;
if (db.objectStoreNames.length == 0) {
dbCallBack(true, true);
} else {
dbCallBack(true, false);
}
};
};
};

以下是 openDB() 函数的调用方式。 dbCallBack 函数的代码内联如下:

if (!db) {
var dbOpenSuccess;
openDB(function(dbOpenSuccess, emptyTableMsg) {
if (emptyTableMsg) {
displayEmptyTableMsg();
} else if (dbOpenSuccess) {
displayTableContents();
}
});
}

注意:在重新运行测试之前,我尝试清除浏览器缓存并从文件夹 C:\users{userID}\AppData\Roaming\Mozilla\Firefox\Profiles 手动删除 indexedDB。我在 http://nparashuram.com/IndexedDB 成功运行了相同的代码。可能出什么问题了?

最佳答案

如果您监听 onabort 事件,您的代码就可以了,如下所示。

request.onsuccess = function(e) {
db = e.target.result;
db.onabort = function(e) {
db.close();
db = null;
}
if (db.objectStoreNames.length == 0) {
dbCallBack(true, true);
} else {
dbCallBack(true, false);
}
};

关于javascript - Indexeddb 中止错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17356750/

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