web-dev-qa-db-ja.com

ブラウザへの応答の最大JSONサイズ

JavaScript/jqueryで準備されたカスタムコントロールを使用してツリーを作成しています。

ツリーを作成するために、jsonオブジェクトをJavaスクリプトへの入力として提供し、ツリーを反復処理して作成します。

データ量は最大25Kノードになる可能性があるため。基本的な負荷テスト中に、そのようなボリュームでブラウザがクラッシュすることがわかりました。

別の解決策は、ノードの最初のレベルをロードし、AJAX request。を介してオンデマンドでロードします。最初のレベルのボリュームは最大500-1Kノードまで変化します。

Jsonがサーバーからの応答として持つ必要がある最大サイズはいくらですか。このような大量のデータをブラウザで処理するための最良のアプローチは何でしょうか。

34
ankur

Http応答の最大サイズの制限はありません(またはIntの最大サイズ、ブラウザーの制限、またはサーバーの制限が構成されています)。

最良のアプローチは、AJAXを使用して、表示する必要があるデータの一部をロードすることです。

14
xdazz

HTTPレスポンスにはサイズ制限がありません。 JSONはHTTP応答として提供されます。したがって、サイズ制限もありません。

JSON応答から解析されたオブジェクトが大量のメモリを消費すると、問題が発生する可能性があります。ブラウザがクラッシュします。そのため、さまざまなデータサイズでテストし、アプリが正常に動作するかどうかを確認する方が適切です。

lazy-loadingは、このような大量のデータに対する最適なアプローチだと思います。特にオブジェクトリテラルを扱うとき。

高性能Ajaxアプリケーション Yahooからのプレゼンテーションを参照してください。

8
Shiplu Mokaddim

まあ、私は2セントを与えるには遅すぎると思います。 shiplu.mokadd.imの応答ブラウザメモリを補完することは制限であり、HTTP応答はTCP仕様に従って任意の量のデータを持つことができます。

しかし、Google Chrome(バージョン29.0.xx)とJettyサーバーを使用するアプリケーションがあり、Jettyサーバーからの応答には335MBのペイロードがあります。ブラウザーがその薄い応答を受信して​​いる間size Chrome「IPCメッセージが大きすぎます」というメッセージを残すのを停止します。これはGoogle Chromeに固有ですが(他のブラウザについてはわかりません)、応答の最大サイズにはしきい値が必要です。

3
Bunti