IDBDatabase: метод createObjectStore()
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2021 года.
Примечание: Эта функция доступна в Web Workers.
Метод createObjectStore() интерфейса IDBDatabase создает и возвращает новый объект IDBObjectStore.
Метод принимает имя хранилища, а также объект параметров, который позволяет определить важные необязательные свойства. Вы можете использовать это свойство для уникальной идентификации отдельных объектов в хранилище. Поскольку это идентификатор, он должен быть уникальным для каждого объекта, и каждый объект должен иметь это свойство.
Этот метод может быть вызван только в рамках транзакции versionchange.
Синтаксис
createObjectStore(name) createObjectStore(name, options)
Параметры
name-
Имя нового хранилища объектов, которое нужно создать. Обратите внимание, что можно создать хранилище объектов с пустым именем.
optionsНеобязательно-
Объект параметров, атрибуты которого являются необязательными параметрами метода. Он включает следующие свойства:
keyPathНеобязательно-
Ключевой путь, который будет использоваться новым хранилищем объектов. Если он пустой или не указан, хранилище объектов создается без ключевого пути и использует ключи вне строки. Вы также можете передать массив в качестве
keyPath. autoIncrementНеобязательно-
Если
true, хранилище объектов имеет генератор ключей. По умолчаниюfalse.
Возвращаемое значение
Новый IDBObjectStore.
Исключения
Этот метод может вызвать DOMException с name одного из следующих типов:
-
ConstraintErrorDOMException -
Выбрасывается, если хранилище объектов с заданным именем (с учетом регистра) уже существует в подключенной базе данных.
-
InvalidAccessErrorDOMException -
Выбрасывается, если
autoIncrementустановлено в true, иkeyPathявляется либо пустой строкой, либо массивом. -
InvalidStateErrorDOMException -
Выбрасывается, если метод не был вызван из обратного вызова транзакции
versionchange. SyntaxError-
Выбрасывается, если параметр
keyPathсодержит неверный ключевой путь. -
TransactionInactiveErrorDOMException -
Выбрасывается, если запрос выполняется в базе данных источника, которая не существует (например, когда база данных была удалена или удалена), или если связанная транзакция обновления завершилась или обрабатывает запрос.
Примеры
// 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.";
};
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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