JavaScript DEFLATE 实现

27

是否有适用于JavaScript的开源DEFLATE编码器实现?我需要在客户端生成一个需要DEFLATE的二进制格式。

2个回答

25

我相信Pako (https://github.com/nodeca/pako)现在是最快的JavaScript实现deflate和其他zlib方法(inflate / gzip / ungzip),Github页面上有基准测试。如果需要处理大块数据,它还支持分块。

声明:此代码的作者是我。


这是关于Node.js的内容... - Flash Thunder
1
运行 bower install pako 命令。请查看自述文件。它适用于浏览器。 - Vitaly
我看到了readme... 你看到代码了吗?由于试图在浏览器上处理dist文件,它们在lib文件夹中使用了node.js的zlib而没有尝试更改它... - Flash Thunder
11
我是这段代码的作者,我知道它如何运作。此代码适用于浏览器,并能在许多浏览器项目中使用,与您的意见无关。 - Vitaly
2
是的,谢谢。我在回答我的Github帖子后注意到了这一点。只是不知道javascript中有require实现,对于混乱感到抱歉。 - Flash Thunder

24

3
请注意,js-deflate期望每个字符占用1个字节的字符串,但JS在内部使用UCS-2编码。因此,您应该首先应用base64编码,或将其转换为原始的UTF-8编码(请参见http://ecmanaut.blogspot.com/2006/07/encoding-decoding-utf8-in-javascript.html以获取转换方法)。 - user123444555621
4
js-deflate 的示例应用:http://jsfiddle.net/mwolfetech/X2NL6/ - mwolfetech
3
如果你将压缩级别从默认值6调整为3,它会复制最后一个字符!而且有时会产生无效的输出。 - Ivan Sikiric
2
之前的 jsfiddle 由于内容类型错误而无法工作。这是一个修复后的示例:http://jsfiddle.net/X2NL6/263/。 - Yaroslav Yakovlev
我无法让这个库的输出被其他任何库接受。毫无价值。 - thejoshwolfe
那里的小提琴示例现在给出了64位编码原始数据的长度,由Yaroslav提供。 - Tatarize

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接