0

オブジェクトのキャッシュをデータとともに保存する必要があります。キャッシュに入れるときにそれらを圧縮し、キャッシュから読み取るときに圧縮を解除するにはどうすればよいですか?

私の目的のために、ストアのいくつかのページをクライアント側のロジックにキャッシュする必要があります。大量のデータを保持できると思うので、レコード数が 500 を超えたら、古い値をクリアします。私のキャッシュは単なる JavaScript オブジェクトであるため、すべてのデータ (オブジェクトの配列) をメモリに保存する必要があります。

Oleg Volkov が言ったように (привет!)、私は自分の仕事について説明します。

1) いくつかの ExtJS 4.1 ストアと、multiSelect とページネーションを備えたコンボがあります。

2) いくつかの関数 (クライアント側とサーバー側の両方) を書きました。これにより、a) 設定したい値が配置されたときにページを取得できます) b) 値を保存するためにfoundValues オブジェクトに格納される方法で値を設定できます ( setRawValue 内で設定)、ページ間を移動するときにそれらを強調表示できます。

3) 私の pageSize は 25 です。したがって、setValues([1, 34, 10]) を実行したい場合、store は firstPage から値を取得し、2 番目にロードして値 (34) を取得し、最初に移動して 10 を取得します。 ! しかし、1 から 25 までのすべての値が最初のページに属していることを保存し、Ajax リクエスト内ではなく、キャッシュから取得したいと考えています。

4

2 に答える 2

2

スペース (コード) と時間 (CPU) のかなりの労力がかかることを除けば、これを行うべきではありません。スペースが貴重なシステム (モバイル?) も、限られた CPU パワーしか持っていません (そして、データを圧縮するには ENERGY が必要です!)。

クライアント側のコード (現在) は、大量のデータをサーバーに保持し、必要に応じて小さなチャンクのみを要求する必要があります。ブラウザーの 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 に答える