0

アプリケーションで、かなりの量の XML をサーバーからクライアントに転送します (毎回 250K ~ 500K)。

サーバーで圧縮し、標準の JavaScript を使用してクライアントで解凍するにはどうすればよいですか? 出来ますか?

4

2 に答える 2

2

まず、叱責と可能な回避策。第二に、考えられるクレイジーな解決策です。

叱責

クライアントとサーバーの間で 250k から 500k を送受信している場合、それは間違っています。調べる

  1. 必要な情報のみを要求して返送する

  2. XML に頻繁に変更されない情報がある場合は、これらの要求に対して積極的な http キャッシュを使用するように Web サーバーを構成します。また、サーバーから取得するのではなく、最初のページ要求で「頻繁に変更されない情報」を送信することを検討してください。

  3. XML ではなく JSON を送信することを検討してください。JSON は XML よりも冗長性が低く、通常は使用するスペースが少なくなります。クライアント側のコードに XML オブジェクトが必要な場合は、ダウンロードした JSON から再構築します。

  4. Apache を使用している場合、mod_deflate は、データを受け入れることができるクライアント用にデータを gzip します。前回、IIS での gzip エンコーディングを調べたときは、ディスク上での圧縮と解凍が行われていたため、高負荷の状況ではすぐにボトルネックになりました (YMMV)

クレイジーなソリューション

javascript で圧縮する方法をどうしても試したい場合は、LZ77 圧縮アルゴリズムがjavascript を含むほとんどの言語に移植されています。

サーバー プラットフォーム用の類似コードを見つけ、XML を圧縮してから、上記のリンクにあるコードにフィードします。エンコーディングの問題を回避するために、送信時に圧縮データ自体を XML または JSON でラップしてみます。

Javascript 圧縮のパフォーマンスは遅くなります。

于 2008-12-20T21:54:18.500 に答える
1

これは HTTP タイプの転送ですか?

最も簡単な方法は、Web サーバー側で圧縮を調べることです。

XML は通常、非常によく圧縮されます。

于 2008-12-20T20:56:13.217 に答える