IndexedDBデータベースが既に存在するかどうかを確認する方法はありますか?プログラムが存在しないデータベースを開こうとすると、データベースが作成されます。私は考えることができる 唯一の方法は、ObjectStoreのが既に存在する場合、私がテストし、以下のようなもの、である、それは、データベースが削除されていない場合:onupgradeneededコールバックでIndexedDBデータベースが存在するかどうか確認してください
var dbexists=false;
var request = window.indexedDB.open("TestDatabase");
request.onupgradeneeded = function(e) {
db = e.target.result;
if (!db.objectStoreNames.contains('todo')) {
db.close();
indexedDB.deleteDatabase("TestDatabase");
} else {
dbexists=true;
}
}
それは良いアイデアです。しかし、データベースが存在するかどうかだけを確認したい場合は、後でデータベースを削除する必要があります。データベースが存在するかどうかをテストする方法があるはずです。 –
トランザクションのabortメソッドを呼び出します。 E.target.result.abort() –
(e.target.result.db.version)を使用してもよろしいですか?後で(e.target.result.version)または(db.version)、(db = e.target.result;)の後にするべきではありませんか?そして、私はデータベースが作成された後、バージョンが0ではなく1であると考えます。 –