Javascript - временное хранилище больших (> 10 МБ) данных объекта - PullRequest
0 голосов
/ 26 августа 2018

Я ищу решение, которое позволит мне кэшировать большой объект при перезагрузке страницы.Точнее, у меня есть большой crossfilter.js объект, который я хотел бы сохранить, так как его создание занимает некоторое время.Мне не удалось найти какой-либо собственный способ сохранения экземпляра crossfilter.js.

Мне известны следующие общие параметры:

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

Подводя итог: я хочу сохранить определенный сложный объект в памяти после перезагрузки страницы.Возможные решения позволят

  1. хранить сложные объекты / экземпляры классов (с методами) в локальном / сеансовом хранилище с увеличенными или отсутствующими ограничениями памяти,
  2. , используя взлом, подобный дампу объектав window.name, но принимает сложный объект без необходимости сериализации, что необходимо для window.name или
  3. с использованием встроенной функции crossfilter.js для выгрузки / кэширования одного из его экземпляров.

Есть советы?Хотя версия, не зависящая от браузера, является предпочтительной, будет также приниматься решение для Chrome.

Спасибо!

...