Spec-Zone.ru › Web APIs

IDBTransaction: метод objectStore()

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

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

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

Примечание: Эта функция доступна в Потоках веб-работы.

Метод objectStore() интерфейса IDBTransaction возвращает хранилище объектов, которое уже добавлено в область действия этой транзакции.

Каждый вызов этого метода для одного и того же объекта транзакции с тем же именем возвращает тот же экземпляр IDBObjectStore. Если этот метод вызывается для другого объекта транзакции, возвращается другой экземпляр IDBObjectStore.

Синтаксис

objectStore(name)

Параметры

name

Имя запрашиваемого хранилища объектов.

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

Объект IDBObjectStore для доступа к хранилищу объектов.

Исключения

NotFoundError DOMException

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

InvalidStateError DOMException

Выбрасывается, если запрос был выполнен для объекта-источника, который был удален или изменен, или если транзакция завершена.

Примеры

В следующем фрагменте кода мы открываем транзакцию чтения/записи в нашей базе данных и добавляем данные в хранилище объектов. Обратите также внимание на функции, прикрепленные к обработчикам событий транзакции, чтобы сообщить об исходе открытия транзакции в случае успеха или неудачи. Для полного рабочего примера см. наше приложение Уведомления о задачах (Просмотреть пример онлайн).

const note = document.getElementById("notifications");

// an instance of a db object for us to store the IDB data in
let db;

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

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 = DBOpenRequest.result;

  // Run the addData() function to add the data to the database
  addData();
};

function addData() {
  // Create a new object ready for being inserted into the IDB
  const newItem = [
    {
      taskTitle: "Walk dog",
      hours: 19,
      minutes: 30,
      day: 24,
      month: "December",
      year: 2013,
      notified: "no",
    },
  ];

  // open a read/write db transaction, ready for adding the data
  const transaction = db.transaction(["toDoList"], "readwrite");

  // report on the success of opening the transaction
  transaction.oncomplete = (event) => {
    note.appendChild(document.createElement("li")).textContent =
      "Transaction completed: database modification finished.";
  };

  transaction.onerror = (event) => {
    note.appendChild(document.createElement("li")).textContent =
      "Transaction not opened due to error. Duplicate items not allowed.";
  };

  // create an object store on the transaction
  const objectStore = transaction.objectStore("toDoList");

  // add our newItem object to the object store
  const objectStoreRequest = objectStore.add(newItem[0]);

  objectStoreRequest.onsuccess = (event) => {
    // report the success of the request (this does not mean the item
    // has been stored successfully in the DB - for that you need transaction.onsuccess)
    note.appendChild(document.createElement("li")).textContent =
      "Request successful.";
  };
}

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

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

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
objectStore 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/IDBTransaction/objectStore

Spec-Zone.ru

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