Spec-Zone.ru › Web APIs

IDBDatabase: метод createObjectStore()

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

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

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

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

Метод createObjectStore() интерфейса IDBDatabase создает и возвращает новый объект IDBObjectStore.

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

Этот метод может быть вызван только в рамках транзакции versionchange.

Синтаксис

createObjectStore(name)
createObjectStore(name, options)

Параметры

name

Имя нового хранилища объектов, которое нужно создать. Обратите внимание, что можно создать хранилище объектов с пустым именем.

options Необязательно

Объект параметров, атрибуты которого являются необязательными параметрами метода. Он включает следующие свойства:

keyPath Необязательно

Ключевой путь, который будет использоваться новым хранилищем объектов. Если он пустой или не указан, хранилище объектов создается без ключевого пути и использует ключи вне строки. Вы также можете передать массив в качестве keyPath.

autoIncrement Необязательно

Если true, хранилище объектов имеет генератор ключей. По умолчанию false.

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

Новый IDBObjectStore.

Исключения

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

ConstraintError DOMException

Выбрасывается, если хранилище объектов с заданным именем (с учетом регистра) уже существует в подключенной базе данных.

InvalidAccessError DOMException

Выбрасывается, если autoIncrement установлено в true, и keyPath является либо пустой строкой, либо массивом.

InvalidStateError DOMException

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

SyntaxError

Выбрасывается, если параметр keyPath содержит неверный ключевой путь.

TransactionInactiveError DOMException

Выбрасывается, если запрос выполняется в базе данных источника, которая не существует (например, когда база данных была удалена или удалена), или если связанная транзакция обновления завершилась или обрабатывает запрос.

Примеры

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

// This handler is called when a new version of the database
// is created, either when one has not been created before
// or when a new version number is submitted by calling
// window.indexedDB.open().
// This handler is only supported in recent browsers.
request.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 });

  note.appendChild(document.createElement("li")).textContent =
    "Object store created.";
};

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

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

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

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

Spec-Zone.ru

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