0

我需要存储一些带有数据的对象缓存。放入缓存时如何压缩它们,从缓存中读取时如何解压缩?

为了我的目的,我需要在客户端逻辑中缓存一些商店页面。我想我可以有很多数据,所以当记录数超过 500 时,我会清除旧值。我的缓存只是一个 JavaScript 对象,所以我需要将所有数据(对象数组)存储在内存中。

正如 Oleg Volkov 所说(привет!),我描述了我的任务:

1) 有一些 ExtJS 4.1 存储和组合多选和分页

2)我写了一些功能(客户端和服务器端),可以a)在放置我要设置的值时获取页面)b)可以设置值,以将它们存储在foundedValues对象中以保存它们的值(到在 setRawValue 中设置)并且可以在我跨页面移动时突出显示它们。

3)我的pageSize是25。所以,如果我想做setValues([1,34,10]),store将从firstPage获取值,然后加载第二个,获取值(34),然后到first获取10 !但我想存储从 1 到 25 的所有值都属于第一页,并从缓存中获取它,而不是在 Ajax 请求中。

4

2 回答 2

2

你不应该这样做,除了它会花费大量的空间(代码)和时间(CPU)。空间非常宝贵的系统(移动设备?)也只有有限的 CPU 能力(而且压缩东西需要消耗能量!),所以如果你需要它,无论如何都不应该这样做。

客户端代码(今天)应该在服务器上保留大量数据(如果很多),并且只根据需要请求小块。浏览器的 JS 引擎可能会或可能不会自己进行压缩,这真的不是你作为 JS 程序员的事。与内存管理相同,这是故意远离 JS 程序员的手的。

所以答案是:重新设计您的应用程序以遵循当前的 JS 客户端/服务器编程和交互编程范式。

于 2012-06-08T14:11:54.030 回答
1

您在客户端压缩和解压缩数据的努力不值得在内存中减小数据大小。

如果你需要做压缩检查这些链接。

  1. -
  2. Gzip 的 JavaScript 实现
  3. 我可以在 JavaScript 中压缩数据吗?
  4. http://forums.devshed.com/javascript-development-115/compress-strings-arrays-263804.html
于 2012-06-08T14:10:54.193 回答