objectStoreNamesリストが空でも、indexedDbオープンリクエストが成功コールバックでコールされているのが見えてきました。indexedDb open onsucess onupgradeneedイベントなし
objectStorenames.lengthがゼロの場合、 "onupgradeneeded"ハンドラが呼び出されると予想されます。
これが起こっている理由を知っている人はいますか?
var db;
var DBOpenRequest = window.indexedDB.open("todos", 1);
DBOpenRequest.onerror = function(event) {
console.error('error in open', event);
};
DBOpenRequest.onsuccess = function(event) {
db = event.target.result;
var objectStores = db.objectStoreNames.length;
console.log('success event, number of objectStores: ' + objectStores);
};
DBOpenRequest.onupgradeneeded = function(event) {
db = event.target.result;
var objectStores = db.objectStoreNames.length;
console.log('upgradeneeded event, number of objectStores: ' + objectStores);
db.createObjectStore("toDoList", { keyPath: "taskTitle" });
};
ストアの名前リストは空ですが、クエリは有効なので、エラーではなく成功します。 onsuccessコールバックのクエリの結果を調べる必要があります。 – John
私はあなたがすでに何らかの形でEdgeにバージョン "1"の空のデータベースを持っていると思う。バージョンを「2」に変更すると、アップグレードが行われる可能性があります。または、EdgeからIDBをクリアします。 – dgrogan
私は、indexedDbがこの状態になる可能性のある既知のパスがあるかどうかを理解しようとしています。この問題は、ブラウザからindexedDbデータベースを削除すると解決されます。 – sbr