JavaScript: Dekomprimieren / entpacken / dekomprimieren / dekomprimieren Sie Strings
Ich bin auf der Suche nach JavaScript-Implementierung der string-inflating-algorithmen.
Ich möchte Kompresse auf der server-Seite (Java) und Dekomprimieren Sie Sie auf der client-Seite (JavaScript).
Habe ich gefunden:
entpacken Sie strings in javascript
Dass man markiert ist, als die Antwort mit einer Lösung für verschiedene Probleme. Andere Antworten sind auch für etwas anderes (entpacken von Dateien im ZIP-format).
JavaScript aufblasen Umsetzung (eventuell FF 3.6 nur)
Dies ist dem am nächsten, was ich brauche. Allerdings würde ich gerne einige alternativen.
Vorschläge?
Danke, Ondra
Update:
Ich haben einen ganz bestimmten Fall, bitte nicht Antworten "nicht, dass in JavaScript."
Ich Schreibe eine "offline" - reporting-tool (einmal generiert, wird es zu einem statischen Speicher) und ablassen der Luft speichern kann Megabyte für einen einzigen Bericht. Ich bin eingeschränkt durch andere apps, also kann ich nicht speichern Sie es als zip-Datei.
InformationsquelleAutor der Frage Ondra Žižka | 2011-02-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werfen Sie einen Blick auf dieser Stack Overflow Fragedie Antworten, die es enthält Verweise auf mehrere komprimieren Motoren in javascript implementiert. Die meisten von diesen sind basierend auf LZ77.
InformationsquelleAutor der Antwort Sean Kinsey
Ich weiß nicht, wie Sie möchte, aber ich mag diese Implementierungen:
Die erste ist die Schnellste, als in der zweiten, können Wir in der Regel ein ausreichend schneller server, jedoch kennen wir nicht die Leistung des client-Rechners. Daher empfehle ich Ihnen, wählen Sie js-entlüften und passen Sie Ihre java (server-Seite) zu füllen.
https://github.com/dankogai/js-deflate
http://code.google.com/p/gzipjs/
InformationsquelleAutor der Antwort Gustavo Costa De Oliveira
Erstellte ich ein funktionierendes Beispiel mit
pako
modernen und schnellenZlib
port.http://jsfiddle.net/9yH7M/2/
InformationsquelleAutor der Antwort Redsandro
gibt es diese Grafik-Bibliothek, hat als Teil davon eine zlib-Implementierung in javascript. wenn Sie unten auf dieser Seite ein bisschen, du wirst sehen es als separaten download.
http://jsxgraph.uni-bayreuth.de/wp/download/
InformationsquelleAutor der Antwort Breton
Diesem Beispiel: http://cheeso.members.winisp.net/srcview.aspx?dir=js-unzip
zeigt, wie Sie tun können ZIP-Dateien in Javascript. Nun, ich weiß, Sie wollen ZLIB-oder DEFLATE-Komprimierung, sondern als ZIP. Aber, ZIP verwendet DEFLATE, und innerhalb der .js-Datei für das Beispiel, es ist ein InflatingReader Klasse, kann sich AUFBLASEN, wie es liest.
Die Klasse stellt folgende Methoden zur Verfügung:
Können Sie verwenden, dass der code unverändert, wenn Sie möchten,AUFBLASEN.
Wenn Sie möchten, ZLIB (aka entpacken), dann gibt es eine 2-byte-Signatur, die Sie benötigen, zu Lesen und zu überprüfen, bevor das Lesen der komprimierten bytes und tun das AUFBLASEN. Ändern Sie einfach die InflatingReader zu Lesen und dump 2 bytes, und es wird die ZLIB-einfach nur gut.
InformationsquelleAutor der Antwort Cheeso
Fand ich eine funktionierende aufblasen Umsetzung hier:
http://www.onicos.com/staff/iz/amuse/javascript/expert/inflate.txt
Wenn Sie möchten, eine sauberer version, die namespaces der Algorithmus, dieser sollte funktionieren:
https://github.com/augustl/js-inflate
Beachten Sie, dass gzipped "aufblasen" Daten vorangestellt ist ein zwei-byte-header, und dem Suffix mit einem vier-byte-Checksumme, die Sie benötigen, zu strip vor der übergabe an den Algorithmus.
InformationsquelleAutor der Antwort Alexander Staubo
Nicht, dass in JavaScript. Es wäre langsam und außerdem, dass JS nicht gut mit Binär-Daten.
Verwenden Sie einfach gzip transfer-encoding auf dem server und Ihrem browser wird sich darum kümmern Dekomprimieren.
InformationsquelleAutor der Antwort ThiefMaster