javascript - 在发送到服务器之前如何在 javascript 中压缩/gzip 用户数据?

标签 javascript ajax json gzip

我对 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("");
}

关于javascript - 在发送到服务器之前如何在 javascript 中压缩/gzip 用户数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8102824/

相关文章:

asp.net - 使用 jQuery ajax 时如何在 VB.NET 中捕获异常

c# - MVC3 Ajax.BeginForm OnSuccess 无法在 Firefox 中运行

ios - 从 Alamofire 和 SwiftyJSON 填充分组表

javascript - 如何创建 'this.getAttribute' 的速记

javascript - 格式化对象数组输出

javascript - 如何使用 Protractor 测试 mdToast 的渲染文本?

javascript - 是否可以在响应完成之前读取 AJAX 请求?

json - Postgres 将 Varchar[] 转换为 JSON

java - 从包含特殊字符的 url 下载图像

javascript - ELSE 语句中的函数也会与 IF 语句一起执行,如何防止这种情况发生?