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-клиент / сервер.
Усилие, которое вы прикладываете на стороне клиента для сжатия и распаковки данных, не стоит уменьшать размер данных в памяти.
Тем не менее, если вам нужно сделать сжатие, проверьте эти ссылки.