2016-05-09 142 views
0

我們的應用程序是在Angularjs中構建的,在一種情況下,我們向客戶端發送了大量的JSON數據。所以需要很多時間。所以我們現在做了什麼,我們把這個JSON數據作爲GZIP字符串。將GZip Json字符串解壓縮爲Angularjs + Typescript中的正常Json字符串

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

Arent你在那裏重新發明輪子?您的應用程序服務器/瀏覽器可能只是爲您壓縮。 http://blogs.msdn.com/b/kiranchalla/archive/2012/09/04/handling-compression-accept-encoding-sample.aspx – Juan

+0

@Juan我無法控制數據來自服務器,我需要處理它在客戶端本身。 –

回答