Javascript中是否有可用于压缩的库

时间:2011-02-27 22:17:24

标签: javascript compression lzma

我正在寻找从服务器以压缩格式向客户端发送数据(带有ajax请求),而不是使用浏览器解压缩该数据? 这个库有吗?

我不是在寻找压缩javascript文件!

编辑:我认为问题不够明确,我不想压缩html文件,我想在服务器上存储一些压缩的LZMA文件或任何其他压缩格式(如obj文件),然后我需要用AJAX得到它后解压缩它们。不使用gzip同时压缩/解压缩。用Javascript获取后打开已经被zipeed的文件。

5 个答案:

答案 0 :(得分:6)

您的网络服务器(和浏览器)应该能够使用gzip透明地处理这个问题。如何设置将取决于您使用的服务器。

在apache中检出mod_deflate或在nginx中启用gzip。

浏览器会在数据到达您的XHR处理程序之前自动解压缩,您可以安全地知道您的数据在传输过程中尽可能地被压缩。

答案 1 :(得分:4)

我知道,这是一个非常晚的答案,但我发现这是一个有趣的选择:http://pieroxy.net/blog/pages/lz-string/index.html 它还有其他语言的实现!

我现在最喜欢的是pako。它非常快速且易于使用,并且与众所周知的zlib

兼容

答案 2 :(得分:0)

这看起来很有希望:http://code.google.com/p/jslzjb/

答案 3 :(得分:0)

Erik说的是什么,http://code.google.com/p/jslzjb/

这里有一些基本的代码可以帮助您进行解码。

 var stringStreamIn = function(s) {
     this.data = s;
     this.length = this.data.length;
     this.offset = -1;
     this.readByte = function(){
         if (++this.offset >= this.length) {
             return null;
         }
         return this.data.charCodeAt(this.offset);
     };
 };

 var stringStreamOut = function() {
     this.data = '';
     this.length = function() { return this.data.length; };
     this.writeByte = function(value) {
         this.data += String.fromCharCode(value);
     };
 };

 var so = new stringStreamOut();
 var si = new stringStreamIn(atob("XQAAgAD//////////wAnG8AHA8+NCpYMj8Bgfez6bsJh4zoZx3fA+gih10oOa6rwYfkaucJIKX8T69I5iOe8WJwg/Ta7x3eHeDomxR6Vf824NLmKSrWHKdnM9n0D2aipzLbHv5//sTGAAA=="));
 LZMA.decompressFile(si, so);
 console.log(so.data);

答案 4 :(得分:0)

我将LZMA暂时移植到GWT。如果您正在使用GWT,这可能是一个可行的选择。

https://code.google.com/p/gwt-lzma/