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

那么有几种方法。首先是数据库的新版本,就是你打开db时提供的版本号。

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

因此,如果您使用变量,则可以这样做。但是onupgradeneeded事件也提供了eventdata

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

如您所见,事件数据作为参数传递给 onupgradeneeded 回调

于 2012-09-21T13:07:10.697 回答