IDBObjectStore: метод deleteIndex()
Базовая версия Широко доступна
Эта функция хорошо отработана и работает на многих устройствах и версиях браузера. Она доступна во всех браузерах с сентября 2021 года.
Примечание: Эта функция доступна в Web Workers.
Метод deleteIndex() интерфейса IDBObjectStore удаляет индекс с указанным именем в подключенной базе данных во время обновления версии.
Обратите внимание, что этот метод должен вызываться только из обратного вызова режима транзакции VersionChange. Обратите внимание, что этот метод синхронно изменяет свойство IDBObjectStore.indexNames.
Синтаксис
deleteIndex(indexName)
Параметры
indexName-
Имя существующего индекса, который необходимо удалить.
Возвращаемое значение
None (undefined).
Исключения
-
InvalidStateErrorDOMException -
Выбрасывается, если метод не был вызван из обратного вызова режима транзакции
versionchange. -
TransactionInactiveErrorDOMException -
Выбрасывается, если транзакция, к которой принадлежит этот
IDBObjectStore, не активна (например, была удалена или удалена). -
NotFoundErrorDOMException -
Выбрасывается, если в базе данных нет индекса с данным именем (регистрозависимый).
Примеры
В следующем примере показано использование обработчика 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");
};
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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