Hallo an alle,
für eine Offline-Suche würde ich gerne Dokumente komprimiert abspeichern können. Natürlich könnte ein Server eine gzip-komprimierte JavaScript-Datei an den Browser senden. Dies fällt allerdings flach, da die JS-Dateien offline eingebunden werden müssen.
Nun frage ich mich, ob es möglich ist, einen String der Form
var myString = "Dies ist ein sehr langer String, mit UTF-8-Zeichen wie €, ß, ö, ô etc...";
zu komprimieren. Konkret stelle ich mir dabei zwei Funktionen compress(str) und uncompress(str) vor, die jeweils einen String zurückgeben können.
Dann könnte man mit
var compressed = compress(myString);
den String komprimieren und mittels
var uncompressed = uncompress(compressed);
wieder dekomprimieren.
Weiß jemand, ob es diesbezüglich bereits etwas im Web gibt?
Nett wäre eine LGPL-konforme Lizenz, also beispielsweise LGPL oder eine BSD-Lizenz.
Wenn nein: Wie könnte man dies realisieren, und welcher Komprimieralgorithmus würde sich anbieten?
Der Nachteil in JavaScript ist ja dass man im normalen Zeichen-Modus operieren muss.
Falls eine derartige Kompression nicht oder nur schwer zu realisieren ist, werde ich die Daten auf eine eigene Weise zu komprimieren versuchen. Da das Format der Daten ungefähr bekannt ist (Folge von Wörtern, die alle kleingeschrieben sind) könnte man den Wörtern Indizes verpassen. Je häufiger das Wort vorkommt desto kleiner die Zahl, und dann wird der String als Array von Zahlen abspeichert.
Dennoch wäre ein effektiver allgemeingültiger Komprimieralgorithmus vorzuziehen.
Grüße
Marc Reichelt || http://www.marcreichelt.de/
panic("Oh boy, that early out of memory?");
linux-2.2.16/arch/mips/mm/init.c
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)