Стоит задача сохранять в браузере пользователя списки 32-битных целых без знака (~1e7 значений).
По ним не нужен поиск, они не индексируются. Индексы другие – timestamp и всякие id.
Вижу три варианта:
data: [1,2,3]
– обычный массив
data: new Uint32Array([1,2,3])
– типизированный массив
data: new Uint32Array([1,2,3]).buffer
– ArrayBuffer.
Есть ли принципиальные различия с т.з. занимаемого объёма диска и скорости записи/чтения? Пользоваться будут и на мобильных устройствах.
Смотрел devtools'ами FireFox (вкладка Storage) – в первых двух видны записанные значения, а для ArrayBuffer показывает как чёрный ящик
{}
. Причем для TypedArray вроде как дописывает к каждому значению ключ.
Для работы с IndexedDB пользуюсь
Dexie.