Вопрос проверяет знание возможностей браузерных хранилищ и умение выбрать подходящее под большие объемы данных.
Для больших объемов данных лучше использовать IndexedDB, так как оно поддерживает асинхронную работу и хранение структурированных объектов. LocalStorage подходит для небольших объемов (до ~5 МБ) и синхронных операций.
LocalStorage
Объем: ~5 МБ.
API: синхронный, блокирует основной поток.
Формат хранения: строки.
Подходит для небольших настроек, токенов.
IndexedDB
Объем: сотни МБ.
API: асинхронный, не блокирует UI.
Формат хранения: объекты, бинарные данные.
Подходит для офлайн-приложений, больших коллекций данных.
const request = indexedDB.open('myDB', 1);
request.onupgradeneeded = e => {
const db = e.target.result;
db.createObjectStore('users', { keyPath: 'id' });
};
request.onsuccess = e => {
const db = e.target.result;
const tx = db.transaction('users', 'readwrite');
tx.objectStore('users').add({ id: 1, name: 'Alice' });
};Вывод:
IndexedDB — выбор для больших данных и сложных структур, LocalStorage — для небольших и быстрых сохранений.