IDBObjectStore: свойство name
Базовая линия Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузера. Она доступна в браузерах с сентября 2021 года.
Примечание: Эта функция доступна в Потоках Web Workers.
Свойство name интерфейса IDBObjectStore указывает имя этого хранилища объектов.
Значение
Строка, содержащая имя хранилища объектов.
Исключения
Существует несколько исключений, которые могут возникнуть при попытке изменить имя хранилища объектов.
-
InvalidStateErrorDOMException -
Выбрасывается, если хранилище объектов было удалено или текущая транзакция не является транзакцией обновления; вы можете переименовать индексы только во время транзакций обновления, то есть когда режим равен
versionchange. -
TransactionInactiveErrorDOMException -
Выбрасывается, если текущая транзакция не активна.
-
ConstraintErrorDOMException -
Выбрасывается, если хранилище объектов уже использует указанное
name.
Примеры
В следующем фрагменте кода мы открываем транзакцию чтения/записи в нашей базе данных и добавляем некоторые данные в хранилище объектов, используя add(). После создания хранилища объектов мы выводим objectStore.name в консоль. Для полного рабочего примера обратитесь к нашему приложению To-do Notifications (просмотр примера онлайн).
// 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 to insert 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 the transaction completing, when everything is done
transaction.oncomplete = (event) => {
note.appendChild(document.createElement("li")).textContent =
"Transaction completed.";
};
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");
console.log(objectStore.name);
// Make a request to add our newItem object to the object store
const objectStoreRequest = objectStore.add(newItem[0]);
objectStoreRequest.onsuccess = (event) => {
// report the success of our request
note.appendChild(document.createElement("li")).textContent =
"Request successful.";
};
}
Спецификации
Совместимость браузеров
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
name |
23 | 12 | 10 | 15 | 8 | 25 | 22 | 14 | 8 | 1.5 | 4.4 |
renaming_through_name_setter |
55 | ≤18 | 49 | 42 | 10.1 | 55 | 49 | 42 | 10.3 | 6.0 | 55 |
См. также
- Использование IndexedDB
- Запуск транзакций:
IDBDatabase - Использование транзакций:
IDBTransaction - Установление диапазона ключей:
IDBKeyRange - Получение и изменение данных:
IDBObjectStore - Использование курсоров:
IDBCursor - Пример ссылки: To-do Notifications (Просмотреть пример онлайн).
© 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/name