IDBObjectStore: метод delete()
Базовая версия Широко поддерживается
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2021 года.
Примечание: Данная функция доступна в Web Workers.
Метод delete() интерфейса IDBObjectStore возвращает объект IDBRequest и, в отдельном потоке, удаляет указанную запись или записи.
В качестве параметра можно передать ключ или IDBKeyRange, что позволяет удалить одну или несколько записей из хранилища. Для удаления всех записей из хранилища используйте IDBObjectStore.clear.
Учитывайте, что если вы используете IDBCursor, вы можете использовать метод IDBCursor.delete() для более эффективного удаления текущей записи — без явного поиска ключа записи.
Синтаксис
delete(key)
Параметры
key-
Ключ удаляемой записи или
IDBKeyRangeдля удаления всех записей с ключами в заданном диапазоне.
Возвращаемое значение
Объект IDBRequest, на котором будут вызваны последующие события, связанные с этой операцией.
Если операция выполнена успешно, значение свойства запроса result равно undefined.
Исключения
Этот метод может вызывать DOMException следующих типов:
-
TransactionInactiveErrorDOMException -
Выбрасывается, если транзакция этого объекта хранилища неактивна.
-
ReadOnlyErrorDOMException -
Выбрасывается, если режим транзакции объекта хранилища — только чтение.
-
InvalidStateErrorDOMException -
Выбрасывается, если объект хранилища был удалён.
-
DataErrorDOMException -
Выбрасывается, если
keyне является валидным ключом или диапазоном ключей.
Примеры
Следующий фрагмент кода демонстрирует функцию deleteItem(), которая является частью приложения примеров уведомлений о задачах. Это приложение хранит элементы списка задач с помощью IndexedDB. Вы можете просмотреть весь код приложения на GitHub и попробовать приложение в действии.
Функция deleteItem() вызывается при нажатии пользователем кнопки для удаления элемента списка задач. Ключ элемента задан в атрибуте данных 'data-task' кнопки, поэтому функция знает, какой элемент удалить. Функция открывает транзакцию базы данных для удаления элемента, передавая его ключ. После завершения транзакции функция обновляет интерфейс приложения, чтобы сообщить об удалении элемента.
Обратите внимание, что в этой функции db — глобальная переменная, ссылающаяся на объект IDBDatabase, который инициализируется при загрузке приложения.
function deleteItem(event) {
// retrieve the name of the task we want to delete
let dataTask = event.target.getAttribute("data-task");
// open a database transaction and delete the task, finding it by the name we retrieved above
let transaction = db.transaction(["toDoList"], "readwrite");
let request = transaction.objectStore("toDoList").delete(dataTask);
// report that the data item has been deleted
transaction.oncomplete = () => {
// delete the parent of the button, which is the list item, so it no longer is displayed
event.target.parentNode.parentNode.removeChild(event.target.parentNode);
note.appendChild(document.createElement("li")).textContent =
`Task "${dataTask}" deleted.`;
};
}
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
delete |
23 | 12 | 10 | 15 | 8 | 25 | 22 | 14 | 8 | 1.5 | 4.4 |
См. также
- Использование IndexedDB
- Начало транзакций:
IDBDatabase - Использование транзакций:
IDBTransaction - Установка диапазона ключей:
IDBKeyRange - Получение и изменение данных:
IDBObjectStore - Использование курсоров:
IDBCursor - Пример ссылки: Уведомления о задачах (Посмотреть пример в действии).
© 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/delete