用户数据发送到服务器前,如何用javascript压缩/gzip

How to zip/gzip user data in javascript before sending to the server?

本文关键字:何用 javascript 压缩 gzip 数据 用户数 服务器 用户      更新时间:2023-09-26

我对Javascript还是个新手。我遇到过这样一种情况:许多用户可以向服务器发送大量JSON。为了限制流量,我想把它们压缩一下。这在Javascript中是可能的吗?如何从JSON的字符串表示创建字节数组?谢谢。

我知道没有gzip实现,但是有其他的压缩方法可供您使用。

这将使用JavaScript对字符串进行lzw编码:

// lzw-encode a string
function lzw_encode(s) {
    var dict = {};
    var data = (s + "").split("");
    var out = [];
    var currChar;
    var phrase = data[0];
    var code = 256;
    for (var i=1; i<data.length; i++) {
        currChar=data[i];
        if (dict[phrase + currChar] != null) {
            phrase += currChar;
        }
        else {
            out.push(phrase.length > 1 ? dict[phrase] : phrase.charCodeAt(0));
            dict[phrase + currChar] = code;
            code++;
            phrase=currChar;
        }
    }
    out.push(phrase.length > 1 ? dict[phrase] : phrase.charCodeAt(0));
    for (var i=0; i<out.length; i++) {
        out[i] = String.fromCharCode(out[i]);
    }
    return out.join("");
}

我相信是的,这里有一篇关于这个主题的维基百科文章http://en.wikipedia.org/wiki/HTTP_compression