当前位置:首页 > JavaScript

js 实现 gzip

2026-03-14 11:04:29JavaScript

Gzip 压缩实现方法

在 JavaScript 中实现 Gzip 压缩可以通过浏览器端的 pako 库或 Node.js 内置的 zlib 模块完成。

浏览器端使用 pako 库

安装 pako 库:

js 实现 gzip

npm install pako

压缩字符串示例:

import pako from 'pako';

const originalString = '需要压缩的文本内容';
const compressed = pako.gzip(originalString);
const base64Compressed = btoa(String.fromCharCode.apply(null, compressed));
console.log('压缩结果:', base64Compressed);

解压缩示例:

js 实现 gzip

const decompressed = pako.ungzip(
  Uint8Array.from(atob(base64Compressed), c => c.charCodeAt(0))
);
const originalText = new TextDecoder().decode(decompressed);
console.log('解压结果:', originalText);

Node.js 使用 zlib 模块

同步压缩示例:

const zlib = require('zlib');
const fs = require('fs');

const input = fs.readFileSync('input.txt');
const compressed = zlib.gzipSync(input);
fs.writeFileSync('output.gz', compressed);

异步压缩示例:

zlib.gzip(inputBuffer, (err, compressedBuffer) => {
  if (!err) {
    fs.writeFile('output.gz', compressedBuffer);
  }
});

注意事项

浏览器端压缩适用于文本数据,二进制数据需要特殊处理。Node.js 的 zlib 模块支持流式处理大文件,pako 更适合前端场景。压缩率与数据内容相关,重复内容可获得更高压缩比。

标签: jsgzip
分享给朋友:

相关文章

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…

js计算器的实现

js计算器的实现

实现基础结构 HTML部分需要创建计算器的基本框架,包含显示区域和按钮。使用<div>容器包裹整个计算器,内部设置一个显示屏和多个按钮。 <div class="calculato…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…