HOWTO · JavaScript

Comprimir cadena en JavaScript

La compresión de una cadena puede necesitar un algoritmo básico que puede ser definido por el usuario o se puede hacer con los predefinidos. La compresión y descompresión es específicamente una forma de codificar los literales de cadena para que el tamaño pueda reducirse y luego restaurarse.

En esta página

En JavaScript, puede haber una amplia gama de compresión, la compresión de archivos como gzip y muchos más. Aquí, discutiremos dos formas de comprimir una cadena.

Inicialmente, destacaremos el algoritmo de Huffman. Y más adelante, cubriremos la forma LZString de resolver la tarea.

Use js-string-compression para comprimir cadenas en JavaScript

Primero configuraremos una carpeta que consiste en un archivo (okay.js). Estamos usando VSCode para el editor de código, y en su terminal escribiremos el siguiente comando.

npm i js-string-compression

Esto agregará el paquete necesario para implementar el algoritmo de Huffman. Una vez que los paquetes estén instalados, tendrá un archivo package.json y package-lock.json en el directorio raíz.

El paquete.json debería tener un aspecto similar al siguiente.

{
  "dependencies": {
    "js-string-compression": "^1.0.1"
  }
}

En la siguiente etapa, escribiremos nuestro código básico, definiendo una cadena y configurando los parámetros que queremos verificar. Revisemos las líneas de código.

Fragmento de código:

var jsscompress = require('js-string-compression');
var raw_text =
    'Lorem Ipsum is simply dummy text of the printing and typesetting industry.';
var hm = new jsscompress.Hauffman();
var compressed = hm.compress(raw_text);
console.log('before compressed: ' + raw_text);
console.log('length: ' + raw_text.length);
console.log('after compressed: ' + compressed);
console.log('length: ' + compressed.length);
console.log('decompressed: ' + hm.decompress(compressed));

Producción:

Use js-string-compression para comprimir cadenas

Use la biblioteca LZString para comprimir cadenas en JavaScript

Para comprimir su cadena a través de la biblioteca LZString, necesitamos tener un archivo HTML y un archivo js. El LZString es una implementación de Perl (lz-string) para comprimir cadenas.

Para importar las dependencias, podemos seguir la línea de comando a continuación en nuestra terminal del directorio raíz, donde tenemos nuestros archivos HTML y js.

npm install -g lz-string

A continuación, crearemos un archivo HTML llamado new.html y un archivo new.js. También crearemos otro archivo llamado lz-string.js, donde almacenaremos la implementación de LZString.

Para el código completo, consideramos este repositorio.

Ahora, escribiremos algunas líneas en nuestro nuevo.js, y la vista previa es similar a la siguiente.

Fragmento de código:

var string =
    'Lorem Ipsum is simply dummy text of the printing and typesetting industry.';
console.log('Size of sample is: ' + string.length);
var compressed = LZString.compress(string);
console.log('Size of compressed sample is: ' + compressed.length);
console.log(compressed);
string = LZString.decompress(compressed);
console.log('Sample is: ' + string);

Después de preparar el archivo new.js, importaremos lz-string.js y new.js al archivo new.html. Cuando abrimos el archivo HTML en el navegador, la salida sería similar a la siguiente.

Producción:

Use LZString para comprimir cadenas

Como se puede notar, si comparamos ambas soluciones, la implementación de LZString da un mejor resultado. Fue desarrollado y diseñado de manera dedicada para resolver problemas en casos más grandes donde puede almacenar datos de gran tamaño en el almacenamiento del servidor.