我正在寻找以压缩格式将数据从服务器发送到客户端(使用 ajax 请求),然后使用浏览器解压缩该数据?有这方面的图书馆吗?
我不是在寻找压缩 javascript 文件!
编辑:我认为问题不够清楚,我不想压缩 html 文件,我想在服务器上存储一些压缩的 LZMA 文件或任何其他压缩格式(如 obj 文件),然后我需要在之后解压缩它们我用 AJAX 得到了它。不能与 gzip 同时压缩/解压缩。使用 Javascript 获取文件后打开已压缩的文件。
我正在寻找以压缩格式将数据从服务器发送到客户端(使用 ajax 请求),然后使用浏览器解压缩该数据?有这方面的图书馆吗?
我不是在寻找压缩 javascript 文件!
编辑:我认为问题不够清楚,我不想压缩 html 文件,我想在服务器上存储一些压缩的 LZMA 文件或任何其他压缩格式(如 obj 文件),然后我需要在之后解压缩它们我用 AJAX 得到了它。不能与 gzip 同时压缩/解压缩。使用 Javascript 获取文件后打开已压缩的文件。
您的网络服务器(和浏览器)应该能够使用 gzip 透明地处理这个问题。如何设置取决于您使用的服务器。
在 apache 中签出mod_deflate或在 nginx 中启用 gzip。
浏览器会在数据到达您的 XHR 处理程序之前自动解压缩数据,您可以放心,您的数据在传输过程中已被尽可能多地压缩。
我知道,这是一个很晚的答案,但我发现这是一个有趣的选择: http: //pieroxy.net/blog/pages/lz-string/index.html 它也有其他语言的实现!
不久前,我将 LZMA 移植到了 GWT。如果您使用 GWT,这可能是一个可行的选择。
埃里克所说的,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);
这看起来很有希望:http ://code.google.com/p/jslzjb/