为什么在使用JSZip时压缩比为0

7
我使用以下代码将可下载的xml文件转换为zip文件,但文件大小仍然相同,压缩比率显示为0%。
    var xmlcontent = "<?xml version='1.0' encoding='UTF-8'?><Body>";
    xmlcontent += json2xml(data);
    xmlcontent += "</Body>";

    var zip = new JSZip();
    zip.file("test1.xml", xmlcontent);
    zip.generateAsync({ type: "blob" })
    .then(function (content) {

        var a = document.createElement("a");
        document.body.appendChild(a);
        a.style = "display: none";
        var url = window.URL.createObjectURL(content);
        a.href = url;
        a.download = "test.zip";
        a.click();
        window.URL.revokeObjectURL(url);

    });

压缩的目的是为了减少客户端检索的文件大小,但显然对此没有影响。请提供一种减小文件大小的方法。


谢谢,我明白了。现在它完美地工作了。你可以把它作为答案 :) - مسعود
1个回答

9
文件的默认压缩设置是STORE(即无压缩)- 如文档所述。
使用.generateAsync(options)options参数将其更改为DEFLATE
var zip = new JSZip();
zip.file("test1.xml", xmlcontent);
zip.generateAsync({
        type: "blob",
        compression: "DEFLATE"
    })
    .then(function (content) {
            ...
    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接