【问题标题】:How to use pako.js javascript? Pako is not defined如何使用 pako.js javascript? Pako 未定义
【发布时间】:2016-08-10 20:16:12
【问题描述】:

我对 JavaScript 还很陌生。我目前正在研究一种在 Java 中放气并在 javascript 中膨胀的算法。在大多数情况下,我听说 pako.js 是一个很好的解压工具,但我在实现它时遇到了问题。我在 JavaScript 中创建了一个将 base64 字符串作为参数传递的函数。

function decompressHtml(html){

                var compressedData = atob(html);
                var charData = compressedData.split('').map(function(x){return x.charCodeAt(0);});
                var binData = new Uint8Array(charData);
                var inflated = '';


                try {
                  inflated = pako.inflate(binData);

                } catch (err) {
                  console.log(err);
                }

                return inflated;

        }

它总是返回一个错误,说明 pako 没有正确定义。是否需要插入特定的脚本标签才能定义 pako?我意识到这可能是一个很容易回答的问题,但我不确定答案。

【问题讨论】:

  • 你有没有...在页面上包含 pako?
  • 我实际上..这是令人困惑的部分

标签: javascript html zlib compression


【解决方案1】:
  1. official pako github page 下载 pako.js 或 pako.min.js
  2. 将下载的文件包含在您的 html 中,如下所示:

    <script type="text/javascript" src="pako.js"></script>

示例代码:

var input = "test string";
var output = pako.gzip(input,{ to: 'string' });
alert("compressed gzip string - " + output);
var originalInput = pako.ungzip(output,{ to: 'string' });
alert("uncompressed string - " + originalInput);

【讨论】:

  • 你的例子很好,但你的第二个警报是错误的,因为在这两种情况下你都给output,但第二个应该是originalInput
  • @RobKwasowski 感谢您的评论。更正了它。干杯
【解决方案2】:

这将对您有所帮助

解压

const input = new Uint8Array(res);
const restored = JSON.parse(pako.inflate(input, { to: 'string'}));
console.log(restored)

压缩

const input = new Uint8Array(res);
const output = pako.deflate(input);
console.log(output)

【讨论】:

    猜你喜欢
    • 2018-11-13
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 2010-10-21
    • 2018-03-03
    • 2018-05-06
    • 1970-01-01
    相关资源
    最近更新 更多