IDBOpenDBRequest: upgradeneeded event

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Sự kiện upgradeneeded được kích hoạt khi có nỗ lực mở cơ sở dữ liệu với số phiên bản cao hơn phiên bản hiện tại của nó.

Sự kiện này không thể hủy và không nổi bọt.

Cú pháp

Sử dụng tên sự kiện trong các phương thức như addEventListener(), hoặc đặt thuộc tính trình xử lý sự kiện.

js
addEventListener("upgradeneeded", (event) => { })

onupgradeneeded = (event) => { }

Loại sự kiện

Một IDBVersionChangeEvent. Kế thừa từ Event.

Event IDBVersionChangeEvent

Thuộc tính sự kiện

Cũng kế thừa các thuộc tính từ giao diện cha, Event.

IDBVersionChangeEvent.oldVersion Read only

Trả về phiên bản cũ của cơ sở dữ liệu.

IDBVersionChangeEvent.newVersion Read only

Trả về phiên bản mới của cơ sở dữ liệu.

Ví dụ

Ví dụ này mở một cơ sở dữ liệu và xử lý sự kiện upgradeneeded bằng cách thực hiện các cập nhật cần thiết cho object store.

js
// Open the database
const dBOpenRequest = window.indexedDB.open("toDoList", 4);

dBOpenRequest.addEventListener("upgradeneeded", (event) => {
  const db = event.target.result;
  console.log(`Upgrading to version ${db.version}`);

  // Create an objectStore for this database
  const objectStore = db.createObjectStore("toDoList", {
    keyPath: "taskTitle",
  });

  // define what data items the objectStore will contain
  objectStore.createIndex("hours", "hours", { unique: false });
  objectStore.createIndex("minutes", "minutes", { unique: false });
  objectStore.createIndex("day", "day", { unique: false });
  objectStore.createIndex("month", "month", { unique: false });
  objectStore.createIndex("year", "year", { unique: false });
});

Ví dụ này tương tự, nhưng sử dụng thuộc tính trình xử lý sự kiện onupgradeneeded.

js
// Open the database
const dBOpenRequest = window.indexedDB.open("toDoList", 4);

dBOpenRequest.onupgradeneeded = (event) => {
  const db = event.target.result;
  console.log(`Upgrading to version ${db.version}`);

  // Create an objectStore for this database
  const objectStore = db.createObjectStore("toDoList", {
    keyPath: "taskTitle",
  });

  // define what data items the objectStore will contain
  objectStore.createIndex("hours", "hours", { unique: false });
  objectStore.createIndex("minutes", "minutes", { unique: false });
  objectStore.createIndex("day", "day", { unique: false });
  objectStore.createIndex("month", "month", { unique: false });
  objectStore.createIndex("year", "year", { unique: false });
};

Thông số kỹ thuật

Thông số kỹ thuật
Indexed Database API 3.0
# eventdef-idbopendbrequest-upgradeneeded

Tương thích trình duyệt

Xem thêm