Décompression ZLIB - Côté client
Je suis la réception de données comme un "ZLIB" compressé inputstream.
À l'aide de Javascript/Ajax/JQuery, j'ai besoin de le décompresser sur le côté client.
Est-il un moyen de le faire? S'il vous plaît aider.
J'ai déjà ce travail en JAVA comme ci-dessous, mais besoin de faire cela sur le Côté Client.
url = new URL(getCodeBase(), dataSrcfile);
URLConnection urlConn = url.openConnection();
urlConn.setUseCaches(false);
InputStream in = urlConn.getInputStream();
InflaterInputStream inflate = new InflaterInputStream(in);
InputStreamReader inputStreamReader = new InputStreamReader(inflate);
InputStreamReader inputStreamReader = new InputStreamReader(in);
BufferedReader bufReader = new BufferedReader(inputStreamReader);
//Read until no more '#'
int i = 0;
int nHidden = 0;
String line1;
do //------------------------Parsing Starts Here
{
line1 = bufReader.readLine();
.............
...... so on
source d'informationauteur Rajeev Raina
Vous devez vous connecter pour publier un commentaire.
Pako est un complet et moderne
Zlib
port.Voici un exemple très simple et vous pouvez travailler à partir de là.
Obtenir pako.js et vous pouvez décompresser byteArray comme suit:
Exemple: http://jsfiddle.net/9yH7M/
Sinon, vous pouvez encoder en base64 le tableau avant de l'envoyer sur le Tableau prend beaucoup de surcharge lors de l'envoi de JSON ou XML. Décoder de la même manière:
Exemple: http://jsfiddle.net/9yH7M/1/
Pour aller plus avancé, voici la
enseigne
documentation de l'API.De la plus récente offre est https://github.com/imaya/zlib.js
Je pense que c'est beaucoup mieux que les solutions de rechange.
Notre bibliothèque JSXGraph contient le dégonfler, décompressez-le et gunzip algorithme. S'il vous plaît, jetez un oeil à jsxcompressor (un spin-off de JSXGraph, voir http://jsxgraph.uni-bayreuth.de/wp/download/) ou à Utils.js dans le code source.
Tout comme les premiers commentaires à votre question suggèrent, je soupçonne que vous voulez réellement le navigateur pour gérer la décompression. Si je me trompe, vous pourriez vouloir vérifier la JSXGraph de la bibliothèque, il est censé contenir pur JS implémentations pour dégonfler et décompressez-le.
La js-dégonfler projet par dankogai peut-être ce que vous cherchez. Je n'ai pas réellement essayé, mais le rawinflate.js code semble assez minime, et devrait être en mesure de décompresser DÉGONFLER/zlib:ed de données.
Essayer pako https://github.com/nodeca/pako , ce n'est pas seulement gonfler/dégonfler, mais exact zlib port de javascript, avec presque toutes les fonctionnalités et d'options de prise en charge. Aussi, c'est la manière la plus rapide de mise en œuvre dans les navigateurs modernes.
vous devriez voir zlib rfc de:zlib rfc
le javascript gonfler code que j'ai testé:gonfler en Javascript
le code java que j'ai écrit:
La chose très Importante est de dégonfler en Java, vous devez couper la tête à 2 octets,pied de 4 octets,pour obtenir le raw dégonfler.
Browserify-zlib fonctionne parfaitement pour moi, il utilise pako et a exactement la même api que zlib. Après j'ai eu du mal pendant des jours avec compression et la décompression de zlib codé de charges dans côté client avec pako, je peux dire que browserify-zlib est vraiment pratique.