当前位置:首页 > JavaScript

js 实现 gzip

2026-03-14 11:04:29JavaScript

Gzip 压缩实现方法

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

浏览器端使用 pako 库

安装 pako 库:

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);

解压缩示例:

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);

异步压缩示例:

js 实现 gzip

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

注意事项

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

标签: jsgzip
分享给朋友:

相关文章

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval 实…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js 实现链表

js 实现链表

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

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…