Я ищу решение, которое позволит мне кэшировать большой объект при перезагрузке страницы.Точнее, у меня есть большой crossfilter.js
объект, который я хотел бы сохранить, так как его создание занимает некоторое время.Мне не удалось найти какой-либо собственный способ сохранения экземпляра crossfilter.js
.
Мне известны следующие общие параметры:
- Локальное хранилище / хранилище сеансов.Проблема: по-видимому, нельзя хранить объекты размером более 5 или 10 МБ, а те, которые я пытаюсь кэшировать, имеют размер более 10 МБ.
- Злоупотребление
window.name
для сериализованной версии моего объекта.Проблема: Хотя это работает для классов, которые я написал сам, попытка сериализации и десериализации экземпляра crossfilter.js
или его групп / измерений приводит к исключениям;т.е. внутреннее состояние экземпляра crossfilter.js
не поддерживается.Я использую https://github.com/hunterloftis/cryo для сериализации. IndexedDB
.Проблема: То же, что и с window.name
- мне придется сериализовать мои данные, для которых я еще не нашел подходящего подхода.Думаю, это немного излишне для моих нужд.
Подводя итог: я хочу сохранить определенный сложный объект в памяти после перезагрузки страницы.Возможные решения позволят
- хранить сложные объекты / экземпляры классов (с методами) в локальном / сеансовом хранилище с увеличенными или отсутствующими ограничениями памяти,
- , используя взлом, подобный дампу объектав
window.name
, но принимает сложный объект без необходимости сериализации, что необходимо для window.name
или - с использованием встроенной функции
crossfilter.js
для выгрузки / кэширования одного из его экземпляров.
Есть советы?Хотя версия, не зависящая от браузера, является предпочтительной, будет также приниматься решение для Chrome.
Спасибо!