Spec-Zone.ru › Dart 2

Библиотека 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.19.6/dart-indexed_db/dart-indexed_db-library.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API