Existe uma biblioteca disponível para compressão em Javascript [fechado]
EDIT: eu acho que a pergunta não foi clara o suficiente, Eu não quero comprimir arquivos html, eu quero armazenar alguns arquivos LZMA comprimidos ou qualquer outro formato de compressão no servidor(como um arquivo obj), e então eu preciso descomprimi-los depois que eu consegui com AJAX. Não compressão/descompressão simultânea com o gzip. Abrir já os arquivos zipeed depois de obtê-los com Javascript.
5 answers
O seu servidor web (e o navegador) deve ser capaz de lidar com isto de forma transparente usando o gzip. Como esta é a configuração irá depender de qual servidor você está usando.
Checkout mod_ deflate no apache ou a activar o gzip no nginx.
O navegador irá descomprimir automaticamente os dados antes de chegar ao seu controlador XHR e você pode estar seguro no conhecimento de que os seus dados foram comprimidos tanto quanto possível em trânsito.
E o meu favorito neste momento é pako. É realmente ardente rápido e fácil de usar e compatível com o bem conhecido zlib
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);