2

すでにこのような質問と回答があります

Javascript を使用して IndexedDB の既存の ObjectStore にインデックスを追加する

しかし、そのコードが setVersion メソッドと onUpgradeNeeded メソッドの両方の増分バージョンにどのように対応しているかわかりません。次の疑似コードのようなもの..


if (oldVersion < 1)
createObjectStore
if (oldVersion < 2)
createNewIndex
etc etc etc...

つまり、setVersion メソッドの oldVersion を取得する方法は知っていますが (db.serVersion が存在するかどうかを確認してから、db.version の値を照会します)、新しい onUpgradeNeeded メソッドの古いバージョンを取得する方法がわかりません。

http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#request-apiからも明らかではありませんでした:-(

サンクス。

4

1 に答える 1

3

いくつかの方法があります。まず、データベースの新しいバージョンは、データベースを開くときに指定するバージョン番号です。

var version = 2;
var request = indexeddb.open("name", version)

したがって、変数を使用する場合は、それを行うことができます。ただし、onupgradeneededイベントはイベントデータも提供します

request.onupgradeneeded = function (e) {
     var transaction = request.result;
     var oldVersion = e.oldVersion;
     var newVersion = e.newVersion;
};

ご覧のとおり、eventdataはonupgradeneededコールバックへの引数として渡されます

于 2012-09-21T13:07:10.697 に答える