2016-05-09 134 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我无法控制数据来自服务器,我需要处理它在客户端本身。 –

回答