Возможно конечно. Для хранения больших объемов данных в браузерах существует встроенная БД
IndexedDB.
Для работы с ней сначала подключаем
специальную библиотеку, которая упрощает ввод и вывод:
<script src="https://cdnjs.cloudflare.com/ajax/libs/localforage/1.9.0/localforage.js"></script>
Далее, чтобы сохранить какие-то данные выполняем в консоли браузера:
result = await localforage.setItem('key', save_data);
console.log('Данные успешно сохранены:');
console.dir(result);
Где в
save_data лежат сохраняемые данные, а
key это ключ по которому можно было бы получить к ним доступ.
Из особенностей, в
save_data мы можем положить любой тип данных - хоть строку, хоть массив, хоть объект. Да даже файл при желании можно сохранить! При этом нет ограничений по объему хранимых данных, можете хоть сто мегабайт, хоть триста запихнуть - встроенное хранилище все сожрет.
Чтобы потом извлечь сохраненные данные достаточно выполнить:
result = await localforage.getItem('key');
console.log('Данные успешно извлечены:');
console.dir(result);
Срок хранения данных - неограниченно. Или пока пользователь вручную не обнулит кеш браузера.
P. S. Обратите внимание, что если вы где-то в своем коде внутри функции используете слово await, то такая функция обязательно должна иметь приставку async! Иначе получите ошибку. В консоли можно использовать await в лоб, но для использования await в коде нужно, чтобы функция внутри которой она вызывается была асинхронной!!!