2016-05-09 10 views
0

Unsere Anwendung ist in Angularjs gebaut, in einem Szenario Wir senden eine gute Menge von JSON-Daten an Client-Seite. Es braucht also viel Zeit. Was wir jetzt gemacht haben, machen wir diese JSON-Daten als GZIP-String.Dekomprimieren von GZip Json String in normale Json String in 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()); 
     } 
    } 

Nach Verwendung des obigen Codes wurde unsere String-Größe in einem guten Umfang reduziert. Aber jetzt ist unser Problem, dass wir diese GZIP auf der Client-Seite nicht dekomprimieren können.

ich folgende Bibliothek versucht haben,

GZIP Library ZLIB

aber immer noch, wie wir Typoskript verwenden, nicht wir Verfahren zugänglich Seite bekommen,

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

In über der Linie Zlib ist nicht verfügbar. Möglicherweise ist die TypeScript-Definition nicht für dieselbe verfügbar.

So kann mir jemand helfen, über Gzip-String zu dekomprimieren.

+0

Arent erfinden Sie das Rad neu erfinden? Ihr Anwendungsserver/Browser kann wahrscheinlich nur für Sie zippen. http://blogs.msdn.com/b/kiranchalla/archive/2012/09/04/handling-compression-accept-encoding-sample.aspx – Juan

+0

@Juan Ich kann nicht kontrollieren, die Daten kamen vom Server, ich muss damit umgehen auf der Client-Seite selbst. –

Antwort