2016-05-09 25 views
0

アプリケーションはAngularjsで構築されていますが、1つのシナリオではJSONデータをクライアント側に送信しています。だから時間がかかります。だから私たちが今行ったことは、JSONデータをGZIP文字列として作成することです。GZip Json Stringを通常のJson String(Angularjs + Typescript)に解凍

public static string Compress(string s) 
    { 
     var bytes = Encoding.Unicode.GetBytes(s); 
     using (var msi = new MemoryStream(bytes)) 
     using (var mso = new MemoryStream()) 
     { 
      using (var gs = new GZipStream(mso, CompressionMode.Compress)) 
      { 
       msi.CopyTo(gs); 
      } 
      return Convert.ToBase64String(mso.ToArray()); 
     } 
    } 

上記のコードを使用した後、文字列のサイズは十分に縮小されました。 しかし、私たちの問題は、クライアントサイドでそのGZIPを解凍できないことです。上記の行でライブラリ以下、私が試してみました

GZIP Library ZLIB

が、それでも私たちは活字体を使用しているように、我々は、ページ内のアクセス方法を得るいけない、

var gunzip = new Zlib.Gunzip(bytes); 
     var plain = gunzip.decompress(); 

Zlibのではありません利用可能です。 TypeScriptの定義が同じではないためかもしれません。

だから誰でもGzip文字列の上に解凍するのを助けることができます。

+0

あなたは車輪を再発明していますか?あなたのアプリケーションサーバー/ブラウザはおそらくあなたのためだけに圧縮することができます。 http://blogs.msdn.com/b/kiranchalla/archive/2012/09/04/handling-compression-accept-encoding-sample.aspx – Juan

+0

@Juanサーバーからのデータを制御できないため、処理する必要がありますクライアント側で –

答えて