Javascript 未在Chrome上调用IndexedDB.open回调
我正在尝试使用IndexedDB,一切都很好,直到几个小时前,我的.open()回调停止在Chrome上调用(在Safari上测试,效果很好) 我查看了Chrome开发者工具IndexedDB,但什么都没有 有人知道发生了什么吗 多谢各位Javascript 未在Chrome上调用IndexedDB.open回调,javascript,google-chrome,indexeddb,Javascript,Google Chrome,Indexeddb,我正在尝试使用IndexedDB,一切都很好,直到几个小时前,我的.open()回调停止在Chrome上调用(在Safari上测试,效果很好) 我查看了Chrome开发者工具IndexedDB,但什么都没有 有人知道发生了什么吗 多谢各位 编辑:完全重新启动浏览器成功了,但我仍然很想知道发生了什么。您是否在同一时间尝试删除数据库?如果存在被阻止的挂起的deleteDatabase操作,IndexedDB可能会进入一种奇怪的(尽管根据规范是正确的)状态。例如,下面的代码。如果其他都失败了,你可以检
编辑:完全重新启动浏览器成功了,但我仍然很想知道发生了什么。您是否在同一时间尝试删除数据库?如果存在被阻止的挂起的deleteDatabase操作,IndexedDB可能会进入一种奇怪的(尽管根据规范是正确的)状态。例如,下面的代码。如果其他都失败了,你可以检查一下chrome://indexeddb-internals,它将告诉您是否有任何挂起的打开或删除操作正在把事情搞砸
var request = indexedDB.open("test", 1);
request.onblocked = function(e) {
console.log("DB open blocked", e);
};
request.onerror = function(err) {
console.log("DB open error", err);
};
request.onupgradeneeded = function(e) {
console.log("DB open upgrade needed");
};
request.onsuccess = function(e) {
db = request.result;
console.log("DB open success");
db.onversionchange = function(e) {
console.log("DB got a versionchange event")
}
request = indexedDB.deleteDatabase("test");
request.onsuccess = function(e) {
console.log("delete success will not be called")
}
request.onblocked = function(e) {
console.log("delete was blocked");
request = indexedDB.open("test", 1);
request.onsuccess = function(e) {
console.log("success won't be called");
};
request.onblocked = function(e) {
console.log("blocked won't be called", e);
};
request.onerror = function(err) {
console.log("error won't be called", err);
};
request.onupgradeneeded = function(e) {
console.log("upgradeneeded won't be called");
};
};
};
不,我没有删除数据库,但我估计有未决的请求。谢谢你的回答。
var request = indexedDB.open("test", 1);
request.onblocked = function(e) {
console.log("DB open blocked", e);
};
request.onerror = function(err) {
console.log("DB open error", err);
};
request.onupgradeneeded = function(e) {
console.log("DB open upgrade needed");
};
request.onsuccess = function(e) {
db = request.result;
console.log("DB open success");
db.onversionchange = function(e) {
console.log("DB got a versionchange event")
}
request = indexedDB.deleteDatabase("test");
request.onsuccess = function(e) {
console.log("delete success will not be called")
}
request.onblocked = function(e) {
console.log("delete was blocked");
request = indexedDB.open("test", 1);
request.onsuccess = function(e) {
console.log("success won't be called");
};
request.onblocked = function(e) {
console.log("blocked won't be called", e);
};
request.onerror = function(err) {
console.log("error won't be called", err);
};
request.onupgradeneeded = function(e) {
console.log("upgradeneeded won't be called");
};
};
};