Библиотека dart:indexed_db
Клиентское хранилище ключ-значение с поддержкой индексов.
Многие браузеры поддерживают IndexedDB — веб-стандарт для индексированных баз данных. Хранение данных в IndexedDB на клиенте предоставляет веб-приложению преимущества, такие как более высокая производительность и сохранение данных. Чтобы узнать, какие браузеры поддерживают IndexedDB, обратитесь к Can I Use?
В IndexedDB каждый записной идентифицируется уникальным индексом или ключом, что ускоряет поиск данных. Вы можете хранить структурированные данные, такие как изображения, массивы и карты, используя IndexedDB. Стандарт не устанавливает лимитов размера отдельных элементов данных или самой базы данных, но браузеры могут накладывать ограничения на хранение.
Использование indexed_db
Классы в этой библиотеке предоставляют интерфейс к IndexedDB браузера, если он есть. Чтобы использовать эту библиотеку в своём коде:
import 'dart:indexed_db';
Веб-приложение может определить, поддерживает ли браузер IndexedDB с помощью IdbFactory.supported:
if (IdbFactory.supported) // Use indexeddb. else // Find an alternative.
Доступ к IndexedDB браузера предоставляется верхнеуровневым объектом Window приложения, на который ваш код может ссылаться с помощью window.indexedDB. Поэтому, например, вот как открыть базу данных с помощью window.indexedDB:
Future open() {
return window.indexedDB.open('myIndexedDB',
version: 1,
onUpgradeNeeded: _initializeDatabase)
.then(_loadFromDB);
}
void _initializeDatabase(VersionChangeEvent e) {
...
}
Future _loadFromDB(Database db) {
...
} Все данные в IndexedDB хранятся в ObjectStore. Для управления базой данных используйте Transaction.
Другие ресурсы
Другие варианты хранения данных на стороне клиента:
- Window.localStorage — базовый механизм, который хранит данные в виде Map, где и ключи, и значения являются строками.
MDN предоставляет документацию API.
Классы
- Cursor
- CursorWithValue
- Database
- Объект индексированной базы данных для хранения данных на клиенте в веб-приложениях.
- IdbFactory
- Index
- KeyRange
- ObjectStore
- Observation
- Observer
- ObserverChanges
- OpenDBRequest
- Request
- Transaction
- VersionChangeEvent
Типы данных
- ObserverCallback = void Function(ObserverChanges changes)
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-indexed_db/dart-indexed_db-library.html