2011-12-17 8 views
2

キー(数値)と値(文字列 - 平均60文字の長さ)の値を格納するクライアントツリーモデルがあります。最大で、ツリーには2500ノードまで存在することがあります。 - これはメモリに保存するには大きすぎるようです(約290kb)ので、必要に応じてノードをロードし、それらの一部をキャッシュします。javascriptオブジェクトの妥当なサイズ

私の質問は - 私はメモリに保存することができますJavaScriptの合理的なオブジェクトのサイズは何ですか?私はそれがページ上で他に何が起こっているかに大きく依存することに気づいていますが、私のツリーのようなキャッシュオブジェクトの良いサイズの意見を聞きたいと思っています

+2

私のブラウザは、通常、約500MBのメモリで実行されます。私の通常の負荷のタブを使用して使用します。私は本当に290kが問題であるとは思わない。 –

+0

キャッシュする方法は? –

+0

本当にこれらの値を保存する必要がありますか?サイズが290KBの場合は問題ありません。問題はこのオブジェクトで何をするかです。あなたの国によって異なりますが、LocalStorage(IE8 +)に値を格納することもできます。 –

答えて

0

私は、保存しようとしているデータのうち、何らかの種類のクライアント側処理でこのデータを使用しているとします。表形式で表示したり、検索または並べ替えのプロセスの一部として使用している可能性があります。

データ駆動型サイトを設計する場合。処理の重い操作はサーバー側に残す必要があります。サーバー側では、サーバーソフトウェアまたはデータベース・マネージャーによって最適化され、キャッシュされ、高速に処理されます。

この場合、最適なサイズは非常に大きく異なるため、1つの客観的な回答があるとは限りません。私は、多くのブラウザ、特にモバイルブラウザではメモリの制限があるため、JavaScriptをメモリ攻撃することでデバイス全体が不安定になることはありません。このメモリの制限はおそらく非常に大きいですが、使用できるメモリの許容上限値ではなく、フェールセーフとしてのみ扱う必要があります。

JavaScriptオブジェクトの目的を再評価して、同じことがサーバー側で達成できるかどうかを確認することを強くお勧めします(必要に応じて、AJAXによって断片的に配信される可能性があります)。これにより、クライアント側の処理オーバーヘッドや帯域幅の使用量が削減され、一般的にはより安定したユーザーエクスペリエンスが実現します。

+0

私がキャッシュしようとしているオブジェクトは、ページのいくつかの場所で使用されます。 1つはテキストフィールドの自動補完で、もう1つはマルチ選択タイプのリストです(データはツリーデータ構造なので、リストには複数の可能な選択レベルがあります)。データはかなり静的で、ユーザーはGoogleのアプリを使用している間、ページにとどまることがあります。だからこそ、私はそのデータをクライアント(または少なくともデータの一部)に保管して、多くのサーバーをトリップするのではないでしょうか。さまざまなブラウザのメモリ制限がどのようなものかを知るには参考になる場所がありますか? –

関連する問題