当前位置:首页 > JavaScript

js实现gzip

2026-02-01 09:31:50JavaScript

使用 pako 库实现 Gzip 压缩与解压

pako 是一个流行的 JavaScript 库,支持 Gzip、Deflate 和 Zlib 格式的压缩与解压。

安装:

npm install pako

压缩示例:

import pako from 'pako';

const data = 'This is the data to compress';
const compressed = pako.gzip(data);
console.log(compressed); // Uint8Array

解压示例:

const decompressed = pako.ungzip(compressed);
const originalText = new TextDecoder().decode(decompressed);
console.log(originalText); // 还原原始数据

浏览器原生 API 实现 Gzip 压缩

现代浏览器支持 Compression Streams API,无需第三方库:

压缩:

const stream = new Blob(['data to compress']).stream();
const compressedStream = stream.pipeThrough(new CompressionStream('gzip'));

解压:

const decompressedStream = compressedStream.pipeThrough(new DecompressionStream('gzip'));

Node.js 原生 Zlib 模块

Node.js 内置 zlib 模块支持 Gzip:

压缩:

const zlib = require('zlib');
const input = 'data to compress';

zlib.gzip(input, (err, buffer) => {
  if (!err) console.log(buffer.toString('base64'));
});

解压:

zlib.gunzip(buffer, (err, output) => {
  if (!err) console.log(output.toString());
});

注意事项

压缩二进制数据时需确保正确处理编码。字符串压缩前建议转换为 UTF-8 格式,解压后需相应解码。

js实现gzip

浏览器 API 兼容性需检查,Compression Streams API 在 Chrome 80+ 和 Edge 80+ 支持较完善。生产环境建议使用 pako 作为跨平台解决方案。

标签: jsgzip
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…