在过去的3个月里,我有相同的(工作)代码打开我的各种Indexeddb数据库。
今天早上,他们刚刚停止工作。来自window.indexeddb.open()
请求的任何回调都不会被调用。他们过去是这样的!
request = window.indexedDB.open(dbName, 1);
request.onblocked = function(e) {
console.log("onblocked");
};
request.onupgradeneeded = function(e) {
console.log("onupgradeneeded");
};
request.onsuccess = function(e) {
console.log("onsuccess");
};
request.onerror = function(e) {
console.log("onerror");
};
我尝试过不同的db版本,完全清除我的浏览器的IndexedDB数据,隐身浏览器,几乎所有我能想到的。同样的行为每次都会发生——控制台中没有错误,db永远不会打开,也不会调用任何回调。
这可能是Chrome更新导致的吗?有人有过这样的经历吗?
我发现了一个类似的问题,但它是在2012年:https://groups.google.com/a/chromium.org/forum/#!味精/chromium-html5/QvjsPbBdP4M/lK5UcnbkXhMJ
我对这个有点疯狂,希望你能给我一些建议。
这恰好是一个Cordova/Ionic应用程序,当相同的代码加载到Android设备上时,数据库按预期打开,这告诉我这是我的Mac上的Chrome版本非常具体的东西:版本45.0.2454.85(64位)
我不得不从我的电脑上完全卸载Google Chrome。重新安装后,一切又恢复正常。我一点也不知道我的浏览器进入了什么奇怪的、不稳定的状态,但是完全重新开始解决了这个问题。