Spec-Zone.ru › Web APIs

IDBObjectStore: метод delete()

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

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

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

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

Метод delete() интерфейса IDBObjectStore возвращает объект IDBRequest и, в отдельном потоке, удаляет указанную запись или записи.

В качестве параметра можно передать ключ или IDBKeyRange, что позволяет удалить одну или несколько записей из хранилища. Для удаления всех записей из хранилища используйте IDBObjectStore.clear.

Учитывайте, что если вы используете IDBCursor, вы можете использовать метод IDBCursor.delete() для более эффективного удаления текущей записи — без явного поиска ключа записи.

Синтаксис

delete(key)

Параметры

key

Ключ удаляемой записи или IDBKeyRange для удаления всех записей с ключами в заданном диапазоне.

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

Объект IDBRequest, на котором будут вызваны последующие события, связанные с этой операцией.

Если операция выполнена успешно, значение свойства запроса result равно undefined.

Исключения

Этот метод может вызывать DOMException следующих типов:

TransactionInactiveError DOMException

Выбрасывается, если транзакция этого объекта хранилища неактивна.

ReadOnlyError DOMException

Выбрасывается, если режим транзакции объекта хранилища — только чтение.

InvalidStateError DOMException

Выбрасывается, если объект хранилища был удалён.

DataError DOMException

Выбрасывается, если 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.`;
  };
}

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

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

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

Рабочие столы Мобильные устройства
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

Spec-Zone.ru

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