Spec-Zone.ru › Web APIs

IDBOpenDBRequest: событие upgradeneeded

Базовая поддержка Широко распространена

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2021 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Событие upgradeneeded срабатывает, когда происходит попытка открыть базу данных с номером версии, превышающим текущую версию.

Это событие не может быть отменено и не распространяется.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или задайте обработчик события.

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

onupgradeneeded = (event) => {};

Тип события

Объект IDBVersionChangeEvent. Наследуется от Event.

Событие IDBVersionChangeEvent

Свойства события

Также наследует свойства от родительского интерфейса Event.

IDBVersionChangeEvent.oldVersion Только для чтения

Возвращает старую версию базы данных.

IDBVersionChangeEvent.newVersion Только для чтения

Возвращает новую версию базы данных.

Примеры

В этом примере открывается база данных и обрабатывается событие upgradeneeded, выполняя необходимые обновления хранилища объектов.

// 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 });
});

Это тот же пример, но с использованием свойства обработчика события onupgradeneeded.

// 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 });
};

Спецификации

Спецификация
Indexed Database API 3.0
# eventdef-idbopendbrequest-upgradeneeded

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
upgradeneeded_event 23 12 10 15 8 25 22 14 8 1.5 4.4

См. также

  • Использование IndexedDB

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/IDBOpenDBRequest/upgradeneeded_event

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API