Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
IndexedDB — низкоуровневое API для клиентского хранилища большого объёма структурированных данных, включая файлы/blobs. Эти API используют индексы для обеспечения высоко-производительного поиска данных. Если DOM Storage полезен для хранения небольшого количества данных, он менее выгоден для большого числа структурированных данных. IndexedDB предоставляет решение. Это основная страница на MDN, покрывающая IndexedDB — здесь мы предоставляем ссылки к полному списку API и руководствам по использованию, детали поддержки браузерами и некоторые объяснения ключевых концепций.
Примечание: Эта возможность доступна в Web Workers.
Примечание: IndexedDB API мощные, но могут казаться слишком сложными для простых задач. Если вы предпочитаете простые API, попробуйте библиотеки, такие как localForage, dexie.js и ZangoDB, делающие IndexedDB более дружественным.
IndexedDB транзакционная система базы данных, как SQL-основанная RDBMS. Однако, в отличие от RDBMS, которая использует таблицы с фиксированными колонками, IndexedDB — JavaScript-основанная объектно-ориентированная база данных. IndexedDB позволяет сохранять и возвращать объекты, которые были проиндексированы с ключом; любой объект, поддерживаемый структурированным алгоритмом клонирования может быть сохранён. Необходимо описать схему базы данных, установить соединение с ней и затем получить и обновить данные за несколько транзакций.
Примечание: Как и большинство решений web-хранения, IndexedDB следует аналогичной same-origin policy. Поэтому вы имеете доступ к хранилищу данных в пределах одного домена, но не можете получать их с любого другого.
Выполнение операций использующих IndexedDB происходит асинхронно, т. е. не блокирует приложение. IndexedDB первоначально включал синхронные и асинхронные API. Синхронные API предназначались только для работы с Web Workers, но были удалены из спецификации, потому что было неясно, нужны ли они. Однако, синхронные API могут быть повторно введены, если появится спрос со стороны веб разработчиков.
Существует несколько веб-технологий, которые хранят данные того или иного вида на стороне клиента (т.е. на вашем локальном диске). Под IndexedDB чаще всего подразумевают одно. Процесс, в котором браузер вычисляет сколько места нужно выделить для хранения веб-данных. Ограничение памяти браузера и критерии освобождения пытаются объяснить как это работает, по крайней мере в случае с Firefox.
Чтобы получить доступ к базе данных, вызовите метод open() y атрибута indexedDB объекта window. Этот метод возвращает объект IDBRequest ; асинхронные операции связываются с вызывающим приложением, вызывая события объекта IDBRequest .
Предоставляет доступ к функциям IndexedDB. Реализовано объектами window и worker.
IDBFactoryПредоставляет доступ к базе данных. Этот интерфейс представлен глобальным объектом indexedDB. Он является точкой входа для API.
IDBOpenDBRequestПредставляет запрос на открытие базы данных.
IDBDatabaseПредставляет подключение к базе данных. Это единственный способ получить транзакцию в базе данных.
Представляет транзакцию. Вы создаёте транзакцию в базе данных, указываете область действия (например, к каким хранилищам объектов вы хотите получить доступ) и определяете тип доступа (только чтение или чтение/запись), который вам нужен.
IDBRequestGeneric interface that handles database requests and provides access to results.
IDBObjectStoreУниверсальный интерфейс, который обрабатывает запросы к базе данных и предоставляет доступ к результатам.
IDBIndexПозволяет получить доступ к подмножеству данных в IndexedDB, но вместо первичного ключа использует индекс для извлечения записи (записей). Иногда это быстрее, чем использование IDBObjectStore.
IDBCursorИтерирует по хранилищам объектов и индексам.
IDBCursorWithValueИтерирует по хранилищам объектов и индексам и возвращает текущее значение курсора.
IDBKeyRangeОпределяет диапазон ключей, который можно использовать для извлечения данных из базы данных в определённом диапазоне.
IDBLocaleAwareKeyRangeОпределяет диапазон ключей, который можно использовать для извлечения данных из базы данных в определённом диапазоне, отсортированных в соответствии с правилами локали, указанной для определённого индекса (см. createIndex()'s optionalParameters.). Этот интерфейс не входит в спецификацию 2.0.
Эта спецификация запускает события со следующим настраиваемым интерфейсом:
IDBVersionChangeEventИнтерфейс IDBVersionChangeEvent указывает, что версия базы данных изменилась в результате функции обработчика событий IDBOpenDBRequest.onupgradeneeded.
Ранняя версия спецификации также определяла эти теперь удалённые интерфейсы. Они все ещё задокументированы на тот случай, если вам понадобится обновить ранее написанный код:
IDBVersionChangeRequestПредставляет запрос на изменение версии базы данных. С тех пор способ изменения версии базы данных изменился (путём вызова IDBFactory.open без вызова IDBDatabase.setVersion), а интерфейс IDBOpenDBRequest теперь имеет функциональность удалённого IDBVersionChangeRequest.
IDBDatabaseExceptionПредставляет исключения, которые могут возникнуть при выполнении операций с базой данных.
IDBTransactionSyncСинхронная версия IDBTransaction.
IDBObjectStoreSyncСинхронная версия IDBObjectStore.
IDBIndexSyncСинхронная версия IDBIndex.
IDBFactorySyncСинхронная версия IDBFactory.
IDBEnvironmentSyncСинхронная версия IDBEnvironment.
IDBDatabaseSyncСинхронная версия IDBDatabase.
IDBCursorSyncСинхронная версия IDBCursor.
| Indexed Database API 3.0 |
This page was last modified on 17 дек. 2024 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.