que - javascript zip string




Implementación de JavaScript de Gzip (6)

Acabamos de lanzar pako https://github.com/nodeca/pako , puerto de zlib a javascript. Creo que ahora es la implementación js más rápida de deflate / inflate / gzip / ungzip. Además, cuenta con licencia democrática del MIT. Pako admite todas las opciones de zlib y sus resultados son binarios iguales.

Estoy escribiendo una aplicación web que necesita almacenar datos JSON en un pequeño caché del lado del servidor de tamaño fijo a través de AJAX (piense: cuotas opociales ). No tengo control sobre el servidor.

Necesito reducir el tamaño de los datos almacenados para permanecer dentro de una cuota del lado del servidor, y esperaba poder gzip el JSON en el navegador antes de enviarlo al servidor.

Sin embargo, no puedo encontrar mucho en la implementación de JavaScript de Gzip. ¿Alguna sugerencia sobre cómo puedo comprimir los datos en el lado del cliente antes de enviarlos?


Aquí hay algunos otros algoritmos de compresión implementados en Javascript:



Porté una implementación de LZMA de un módulo GWT a JavaScript independiente. Se llama LZMA-JS .


Supongo que una implementación genérica de compresión de JavaScript del lado del cliente sería una operación muy costosa en términos de tiempo de procesamiento en lugar de tiempo de transferencia de unos cuantos paquetes HTTP más con carga útil sin comprimir.

¿Ha realizado alguna prueba que le dé una idea de cuánto tiempo puede ahorrar? Quiero decir, los ahorros de ancho de banda no pueden ser lo que buscas, ¿o sí?


Tuve otro problema, no quería codificar datos en gzip, sino decodificar datos gzip . Estoy ejecutando código javascript fuera del navegador, por lo que necesito decodificarlo utilizando javascript puro .

Me tomó algo de tiempo, pero descubrí que en la biblioteca JSXGraph hay una forma de leer datos comprimidos con gzip.

Aquí es donde encontré la biblioteca: http://jsxgraph.uni-bayreuth.de/wp/2009/09/29/jsxcompressor-zlib-compressed-javascript-code/ Incluso hay una utilidad independiente que puede hacer eso, JSXCompressor , y el código tiene licencia LGPL.

Simplemente incluya el archivo jsxcompressor.js en su proyecto y luego podrá leer una base codificada en 64 datos gzipeados:

<!doctype html>
</head>
<title>Test gzip decompression page</title>
<script src="jsxcompressor.js"></script>
</head>
<body>
<script>
    document.write(JXG.decompress('<?php 
        echo base64_encode(gzencode("Try not. Do, or do not. There is no try.")); 
    ?>'));
</script>
</html>

Entiendo que no es lo que querías, pero aún respondo aquí porque sospecho que ayudará a algunas personas.





gzip