API IndexedDB
Примечание: Эта функция доступна в Web Workers.
IndexedDB — это API низкого уровня для хранения на стороне клиента значительного объёма структурированных данных, включая файлы/объекты BLOB. Этот API использует индексы для обеспечения высокой производительности поиска этих данных. Хотя Web Storage полезен для хранения небольших объёмов данных, он менее полезен для хранения больших объёмов структурированных данных. IndexedDB предоставляет решение. Это основная страница для документации IndexedDB на MDN — здесь мы предоставляем ссылки на полную справку по API, руководства по использованию, информацию о поддержке браузерами и некоторые объяснения ключевых концепций.
Основные понятия и использование
IndexedDB — это транзакционная система баз данных, подобная системе управления реляционными базами данных (RDBMS) на основе SQL. Однако в отличие от RDBMS на основе SQL, которые используют таблицы с фиксированными столбцами, IndexedDB — это объектно-ориентированная база данных на JavaScript. IndexedDB позволяет хранить и извлекать объекты, индексированные с помощью ключа; любые объекты, поддерживаемые алгоритмом структурного клонирования, могут быть сохранены. Вам нужно указать схему базы данных, открыть подключение к базе данных, а затем извлекать и обновлять данные в серии транзакций.
- Подробнее о основных характеристиках и терминологии IndexedDB.
- Научитесь использовать IndexedDB асинхронно с нуля в нашем руководстве Использование IndexedDB.
- Посмотрите полный пошаговый пример в руководстве проверка, когда истекает срок.
Примечание: Как и большинство решений для хранения веб-данных, IndexedDB следует политике одного источника. Таким образом, хотя вы можете получить доступ к сохранённым данным в пределах домена, вы не можете получить доступ к данным разных доменов.
Синхронные и асинхронные операции
Операции, выполняемые с помощью IndexedDB, выполняются асинхронно, чтобы не блокировать приложения.
Ограничения хранилища и критерии удаления
Существует ряд веб-технологий, которые хранят данные одного типа или другого на стороне клиента (т.е. на вашем локальном диске). IndexedDB упоминается чаще всего. Процесс, с помощью которого браузер определяет, сколько места выделить для хранения веб-данных и что удалить, когда этот предел будет достигнут, не прост и отличается в разных браузерах. Квоты и критерии удаления данных браузера пытается объяснить, как это работает, по крайней мере, в случае Firefox.
Интерфейсы
Для получения доступа к базе данных вызовите open() на свойстве indexedDB объекта window. Этот метод возвращает объект IDBRequest; асинхронные операции сообщают вызывающему приложению, генерируя события на объектах IDBRequest.
Подключение к базе данных
IDBFactory-
Обеспечивает доступ к базе данных. Объект этого типа является значением глобальных свойств
Window.indexedDBиWorkerGlobalScope.indexedDB. Поэтому это точка входа в API. IDBOpenDBRequest-
Представляет запрос на открытие базы данных.
IDBDatabase-
Представляет подключение к базе данных. Это единственный способ получить транзакцию в базе данных.
Извлечение и изменение данных
IDBTransaction-
Представляет транзакцию. Вы создаёте транзакцию в базе данных, указываете область (например, какие хранилища объектов вы хотите получить доступ), и определяете тип доступа (только чтение или чтение-запись).
IDBRequest-
Общий интерфейс, который обрабатывает запросы к базе данных и предоставляет доступ к результатам.
IDBObjectStore-
Представляет хранилище объектов, которое позволяет получить доступ к набору данных в базе данных IndexedDB, просматривая его по первичному ключу.
IDBIndex-
Также позволяет получить доступ к подмножеству данных в базе данных IndexedDB, но использует индекс для извлечения записи(ей) вместо первичного ключа. Это иногда быстрее, чем использование
IDBObjectStore. IDBCursor-
Итерируется по хранилищам объектов и индексам.
IDBCursorWithValue-
Итерируется по хранилищам объектов и индексам и возвращает текущее значение курсора.
IDBKeyRange-
Определяет диапазон ключей, который может быть использован для извлечения данных из базы данных в определённом диапазоне.
Интерфейсы пользовательских событий
Этот стандарт генерирует события с помощью следующего пользовательского интерфейса:
IDBVersionChangeEvent-
Интерфейс
IDBVersionChangeEventуказывает, что версия базы данных изменилась в результате обработчика событийIDBOpenDBRequest.onupgradeneeded.
Примеры
- Уведомления о задачах (посмотреть пример в браузере): Примерное приложение для примеров в документации.
Спецификации
| Спецификация |
|---|
| API базы данных Indexed 3.0 |
См. также
© 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/IndexedDB_API