アプリケーションで、かなりの量の XML をサーバーからクライアントに転送します (毎回 250K ~ 500K)。
サーバーで圧縮し、標準の JavaScript を使用してクライアントで解凍するにはどうすればよいですか? 出来ますか?
アプリケーションで、かなりの量の XML をサーバーからクライアントに転送します (毎回 250K ~ 500K)。
サーバーで圧縮し、標準の JavaScript を使用してクライアントで解凍するにはどうすればよいですか? 出来ますか?
まず、叱責と可能な回避策。第二に、考えられるクレイジーな解決策です。
クライアントとサーバーの間で 250k から 500k を送受信している場合、それは間違っています。調べる
必要な情報のみを要求して返送する
XML に頻繁に変更されない情報がある場合は、これらの要求に対して積極的な http キャッシュを使用するように Web サーバーを構成します。また、サーバーから取得するのではなく、最初のページ要求で「頻繁に変更されない情報」を送信することを検討してください。
XML ではなく JSON を送信することを検討してください。JSON は XML よりも冗長性が低く、通常は使用するスペースが少なくなります。クライアント側のコードに XML オブジェクトが必要な場合は、ダウンロードした JSON から再構築します。
Apache を使用している場合、mod_deflate は、データを受け入れることができるクライアント用にデータを gzip します。前回、IIS での gzip エンコーディングを調べたときは、ディスク上での圧縮と解凍が行われていたため、高負荷の状況ではすぐにボトルネックになりました (YMMV)
javascript で圧縮する方法をどうしても試したい場合は、LZ77 圧縮アルゴリズムがjavascript を含むほとんどの言語に移植されています。
サーバー プラットフォーム用の類似コードを見つけ、XML を圧縮してから、上記のリンクにあるコードにフィードします。エンコーディングの問題を回避するために、送信時に圧縮データ自体を XML または JSON でラップしてみます。
Javascript 圧縮のパフォーマンスは遅くなります。
これは HTTP タイプの転送ですか?
最も簡単な方法は、Web サーバー側で圧縮を調べることです。
XML は通常、非常によく圧縮されます。