JavaScript кеширует объекты со сжатием

Мне нужно хранить некоторый кеш объектов с данными. Как я могу сжать их, когда положить в кэш и распаковать при чтении из него?

Мне нужно кэшировать некоторые страницы магазина в моей клиентской логике для моих целей. Я думаю, что у меня может быть много данных, поэтому, когда количество записей превысит 500, я очистю старые значения. Мой кеш - это просто объект JavaScript, поэтому мне нужно хранить все данные (которые являются массивом объектов) в памяти.

Как сказал (привет!) Олег Волков, я опишу свою задачу:

1) есть несколько ExtJS 4.1 store и combo с multiSelect и нумерацией страниц

2) Я написал некоторый функционал (как на стороне клиента, так и на стороне сервера), который может а) получать страницу при размещении значения, которое я хочу установить) б) может задавать значения setValues ​​так, как они будут храниться в объекте foundValues, чтобы сохранить их значения (для установить в setRawValue) и может выделить их при перемещении по страницам.

3) Мой размер страницы равен 25. Итак, если я хочу сделать setValues ​​([1, 34, 10]), хранилище получит значение из firstPage, затем загрузит второе, получит значение (34) и перейдет к первому, чтобы получить 10! Но я хочу сохранить, что все значения от 1 до 25 относятся к первой странице, и получить их из кэша, а не в запросах Ajax.

2 ответа

Решение

Вы не должны этого делать, не считая значительных затрат пространства (кода) и времени (ЦП), которые потребуются. Системы с ограниченным пространством (мобильные?) Также имеют ограниченную мощность ЦП (и это требует ЭНЕРГИИ для сжатия содержимого!), Поэтому, если вам это нужно, вам не следует делать это в любом случае.

Код на стороне клиента (сегодня) должен хранить большую часть данных (если их много) на сервере и запрашивать только небольшие фрагменты по требованию. JS-движок браузера может или не может выполнять свое собственное сжатие, что на самом деле не является вашим бизнесом как JS-программиста. То же самое, что управление памятью, которое сознательно скрыто от рук программиста JS.

Таким образом, ответ таков: измените дизайн своего приложения в соответствии с текущей парадигмой программирования для программирования и взаимодействия JS-клиент / сервер.

Усилие, которое вы прикладываете на стороне клиента для сжатия и распаковки данных, не стоит уменьшать размер данных в памяти.

Тем не менее, если вам нужно сделать сжатие, проверьте эти ссылки.

  1. -
  2. Реализация JavaScript в Gzip
  3. Могу ли я сжать данные в JavaScript?
  4. http://forums.devshed.com/javascript-development-115/compress-strings-arrays-263804.html
Другие вопросы по тегам