0

有什么方法可以检查客户端是否IndexedDb需要更新?这适用于已经拥有现有本地存储的用户

var idx_db = null;
var dbRequest = window.indexedDB.open(“ExampleDB”);
    dbRequest.onerror = function (evt) {
    alert(“Db error: “ + evt.target.error.name);
}
    dbRequest.onsuccess = function (evt) {
    idx_db = evt.target.result; 
}
4

2 回答 2

2

你不需要检查任何东西。您唯一需要做的就是使用所需版本打开 indexeddb,例如:

var db = window.indexedDB.open("db", 3);

如果需要升级,将调用 onupgradeneeded 回调。如果数据库在当前版本中已经就绪,则只会调用成功回调。

在 onupgradeneeded 回调中,您可以检查数据库的旧版本是什么。有了这个,您可以选择所需的升级路径。

于 2013-11-13T08:02:26.670 回答
0

设法从HTML5-IndexedDB书中找出答案。通过指定高于将触发onupgradeneeded事件处理程序的数据库的当前数据库版本的版本号。

var dbRequest = window.indexedDB.open(“ExampleDB”, 2);
dbRequest.onupgradeneeded = function (evt) {
if (evt.oldVersion < 1) {
      // create objects for version 1
}
    // other version upgrade paths
} 
于 2013-11-12T09:52:37.880 回答