私はデータベースにクエリするために多くのajax呼び出しを使用しており、大きなテキスト(json)応答を取得します。私はレスポンスを圧縮したいと思います。JSONレスポンスを圧縮する方法
JavaScript implementation of Gzipにjavascriptを使用してテキストを圧縮する素晴らしい方法があります。
問題は、私のaspxサーバーでレスポンスを圧縮し、javascriptで圧縮解除したいという問題です。したがって、私はasp.netサーバー上でlzw_encode
関数を実行する必要があります。私はその関数をC#に変換すべきか、別の方法がありますか?あなたが持つサーバー上でコードを圧縮することができますIISまたは変更ヘッダーを設定したいいけない場合は、上記のリンクを使用して
:
C#
public static string Compress(string s)
{
var dict = new Dictionary<string, int>();
char[] data = s.ToArray();
var output = new List<char>();
char currChar;
string phrase = data[0].ToString();
int code = 256;
for (var i = 1; i < data.Length; i++){
currChar = data[i];
var temp = phrase + currChar;
if (dict.ContainsKey(temp))
phrase += currChar;
else
{
if (phrase.Length > 1)
output.Add((char)dict[phrase]);
else
output.Add((char)phrase[0]);
dict[phrase + currChar] = code;
code++;
phrase = currChar.ToString();
}
}
if (phrase.Length > 1)
output.Add((char)dict[phrase]);
else
output.Add((char)phrase[0]);
return new string(output.ToArray());
}
とブラウザ上で、あなたがそれを解凍することができます :
javascriptの
サーバー側の応答オブジェクト内210
JSON(およびその他の)応答を圧縮する最も簡単な方法は、WebサーバーがHTTP圧縮を使用していることを確認することです。 http://ja.wikipedia.org/wiki/HTTP_compressionご質問で参照するリンクでは、JavaScriptを使用してデータを圧縮するため、サーバーに保存する際に必要な記憶領域が少なくて済みます。 –
これはおそらくより洗練されたソリューションです。私はそれを試してみてください感謝! –
@TonoNam - あなたの実際の問題に合わせて質問を変更しました。自由に編集/編集することができます。 –