Spec-Zone.ru › Web APIs

IDBObjectStore: метод deleteIndex()

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

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

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

Примечание: Эта функция доступна в Web Workers.

Метод deleteIndex() интерфейса IDBObjectStore удаляет индекс с указанным именем в подключенной базе данных во время обновления версии.

Обратите внимание, что этот метод должен вызываться только из обратного вызова режима транзакции VersionChange. Обратите внимание, что этот метод синхронно изменяет свойство IDBObjectStore.indexNames.

Синтаксис

deleteIndex(indexName)

Параметры

indexName

Имя существующего индекса, который необходимо удалить.

Возвращаемое значение

None (undefined).

Исключения

InvalidStateError DOMException

Выбрасывается, если метод не был вызван из обратного вызова режима транзакции versionchange.

TransactionInactiveError DOMException

Выбрасывается, если транзакция, к которой принадлежит этот IDBObjectStore, не активна (например, была удалена или удалена).

NotFoundError DOMException

Выбрасывается, если в базе данных нет индекса с данным именем (регистрозависимый).

Примеры

В следующем примере показано использование обработчика onupgradeneeded для обновления структуры базы данных, если загружается база данных с более высокой версией. IDBObjectStore.createIndex используется для создания новых индексов в хранилище объектов, после чего мы удаляем ненужные старые индексы с помощью deleteIndex(). Для полного рабочего примера см. наше приложение To-do Notifications (посмотреть пример онлайн).

let db;

// Let us open our database
const DBOpenRequest = window.indexedDB.open("toDoList", 4);

// these two event handlers act on the database being opened successfully, or not
DBOpenRequest.onerror = (event) => {
  note.appendChild(document.createElement("li")).textContent =
    "Error loading database.";
};

DBOpenRequest.onsuccess = (event) => {
  note.appendChild(document.createElement("li")).textContent =
    "Database initialized.";

  // store the result of opening the database in the db variable. This is used a lot below
  db = event.target.result;

  // Run the displayData() function to populate the task list with all the to-do list data already in the IDB
  displayData();
};

// 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
//it is only implemented in recent browsers
DBOpenRequest.onupgradeneeded = (event) => {
  const db = event.target.result;

  db.onerror = (event) => {
    note.appendChild(document.createElement("li")).textContent =
      "Error loading database.";
  };

  // 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 });
  objectStore.createIndex("notified", "notified", { unique: false });

  objectStore.deleteIndex("seconds");
  objectStore.deleteIndex("contact");
};

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

Спецификация
Indexed Database API 3.0
# ref-for-dom-idbobjectstore-deleteindex①

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

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

См. также

  • Использование IndexedDB
  • Запуск транзакций: IDBDatabase
  • Использование транзакций: IDBTransaction
  • Указание диапазона ключей: IDBKeyRange
  • Получение и внесение изменений в данные: IDBObjectStore
  • Использование курсоров: IDBCursor
  • Пример справочника: To-do Notifications (посмотреть пример онлайн).

© 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/IDBObjectStore/deleteIndex

Spec-Zone.ru

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