onupgradeneeded 特性为 IDBOpenDBRequest interface is the event handler for the upgradeneeded event, triggered when a database of a bigger version number than the existing stored database is loaded.

The event passed to the listener is an IDBVersionChangeEvent .

Inside the event handler function you can include code to upgrade the database structure, as shown in the example below.

注意: 此特征可用于 Web 工作者 .

句法

IDBOpenDBRequest.onupgradeneeded = function(event) { ... };
					

范例

In the following example you can see the onupgradeneeded handler being used to update the database structure if a database with a higher version number is loaded. For a full working example, see our 待办通知 app ( 实时查看范例 )。

var db;
// Request version 3 of the database.
var request = window.indexedDB.open("library", 3);
// This event handles the event whereby a new version of the
// database needs to be created. Either one has not been created
// before, or a new version number has been submitted via the
// window.indexedDB.open line above.
request.onupgradeneeded = function(event) {
  db = request.result;
  db.onerror = function(errorEvent) {
    note.innerHTML += '<li>Error loading database.</li>';
  };
  if (event.oldVersion < 1) {
    // Version 1 is the first version of the database.
    var store = db.createObjectStore("books", {keyPath: "isbn"});
    var titleIndex = store.createIndex("by_title", "title", {unique: true});
    var authorIndex = store.createIndex("by_author", "author");
  }
  if (event.oldVersion < 2) {
    // Version 2 introduces a new index of books by year.
    var bookStore = request.transaction.objectStore("books");
    var yearIndex = bookStore.createIndex("by_year", "year");
  }
  if (event.oldVersion < 3) {
    // Version 3 introduces a new object store for magazines with two indexes.
    var magazines = db.createObjectStore("magazines");
    var publisherIndex = magazines.createIndex("by_publisher", "publisher");
    var frequencyIndex = magazines.createIndex("by_frequency", "frequency");
  }
};
request.onerror = function(event) {
  note.innerHTML += '<li>Error loading database.</li>';
};
request.onsuccess = function(event) {
  note.innerHTML += '<li>Database initialised.</li>';
  db = request.result;
  populateAndDisplayData();
};
					

规范

规范 状态 注释
索引数据库 API 2.0
The definition of 'onupgradeneeded' in that specification.
推荐
索引数据库 API 草案
The definition of 'onupgradeneeded' in that specification.
推荐

浏览器兼容性

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request. 更新 GitHub 上的兼容性数据
桌面 移动
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
onupgradeneeded Chrome 24
24
不支持 23 — 57 Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge 12 Firefox 16
16
不支持 10 — 16 Prefixed
Prefixed Implemented with the vendor prefix: moz
IE 部分支持 10 Opera 15 Safari 7 WebView Android Yes
Yes
不支持 ? — 57 Prefixed
Prefixed Implemented with the vendor prefix: webkit
Chrome Android 25
25
不支持 25 — 57 Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android 22 Opera Android 14 Safari iOS 8 Samsung Internet Android 1.5
1.5
不支持 1.5 — 7.0 Prefixed
Prefixed Implemented with the vendor prefix: webkit

图例

完整支持

完整支持

部分支持

部分支持

要求使用供应商前缀或不同名称。

要求使用供应商前缀或不同名称。

另请参阅

元数据

  • 最后修改:
  1. IndexedDB API
  2. IDBOpenDBRequest
  3. 特性
    1. onblocked
    2. onupgradeneeded
  4. 事件
    1. blocked
    2. upgradeneeded
  5. 继承:
    1. IDBRequest
    2. EventTarget
  6. IndexedDB 相关页面
    1. IDBCursor
    2. IDBCursorSync
    3. IDBCursorWithValue
    4. IDBDatabase
    5. IDBDatabaseException
    6. IDBDatabaseSync
    7. IDBEnvironment
    8. IDBEnvironmentSync
    9. IDBFactory
    10. IDBFactorySync
    11. IDBIndex
    12. IDBIndexSync
    13. IDBKeyRange
    14. IDBObjectStore
    15. IDBObjectStoreSync
    16. IDBRequest
    17. IDBTransaction
    18. IDBTransactionSync
    19. IDBVersionChangeEvent
    20. IDBVersionChangeRequest

版权所有  © 2014-2026 乐数软件    

工业和信息化部: 粤ICP备14079481号-1