9

我正在寻找以压缩格式将数据从服务器发送到客户端(使用 ajax 请求),然后使用浏览器解压缩该数据?有这方面的图书馆吗?

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

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

4

5 回答 5

7

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

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

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

于 2011-02-27T22:22:07.480 回答
4

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

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

于 2014-04-28T15:58:44.873 回答
0

不久前,我将 LZMA 移植到了 GWT。如果您使用 GWT,这可能是一个可行的选择。

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

于 2014-05-21T14:23:30.060 回答
0

埃里克所说的,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);
于 2013-06-11T10:32:05.893 回答
0

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

于 2011-09-16T07:11:44.343 回答