Как лучше хранить массив целых в IndexedDB: TypedArray или ArrayBuffer?

Стоит задача сохранять в браузере пользователя списки 32-битных целых без знака (~1e7 значений).

По ним не нужен поиск, они не индексируются. Индексы другие – timestamp и всякие id.

Вижу три варианта:
  1. data: [1,2,3] – обычный массив
  2. data: new Uint32Array([1,2,3]) – типизированный массив
  3. data: new Uint32Array([1,2,3]).buffer – ArrayBuffer.


Есть ли принципиальные различия с т.з. занимаемого объёма диска и скорости записи/чтения? Пользоваться будут и на мобильных устройствах.

Смотрел devtools'ами FireFox (вкладка Storage) – в первых двух видны записанные значения, а для ArrayBuffer показывает как чёрный ящик {}. Причем для TypedArray вроде как дописывает к каждому значению ключ.

Для работы с IndexedDB пользуюсь Dexie.
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы