Javascript JSX压缩机的使用
我正在尝试使用来自的jsxcompressor 但在我开始行动之前,我遇到了一个问题: 未捕获的TypeError:无法读取未定义的属性“0” 我的简单示例代码如下所示:Javascript JSX压缩机的使用,javascript,Javascript,我正在尝试使用来自的jsxcompressor 但在我开始行动之前,我遇到了一个问题: 未捕获的TypeError:无法读取未定义的属性“0” 我的简单示例代码如下所示: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script src="/jsxcompressor.js" type="text/javascript"><
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="/jsxcompressor.js" type="text/javascript"></script>
<script type="text/javascript">
document.write(JXG.decompress("test"));
</script>
</head>
<body></body>
</html>
编写(JXG.解压缩(“测试”));
我知道“test”并不完全是一个压缩字符串,但只是把它放在那里作为测试的开始
chrome js控制台的错误如下:
有人能帮我吗?
非常感谢 JXG.decompress必须提供一个base64编码的压缩字符串。试试这个:
document.write(JXG.decompress("eNrzSM3JyVc1clY1MijPL8pJUTVwBAA8CgXU"));
此时,必须调用压缩强度等于9的gzip。获取压缩字符串的PHP代码如下所示:
base64_encode(gzcompress(rawurlencode(file_get_contents($filename)),9));
base64.b64encode(zlib.compress(urllib.quote(text), 9))
在Python中,它将如下所示:
base64_encode(gzcompress(rawurlencode(file_get_contents($filename)),9));
base64.b64encode(zlib.compress(urllib.quote(text), 9))
给出的答案是正确的,尽管我想使用zlib for node.js贡献我的发现
在使用zlib.deflate发送套接字消息时,即使字符串是base64编码的,我也会遇到同样的错误。显然,deflate方法向压缩字符串添加了一些zlib头。相反,使用zlib.gzip压缩服务器上的数据,jsxCompress可以正常工作。好吧,也许使用非zlib压缩字符串是个问题。您是否尝试传递正确的值?看看
JXG.Util.Base64.decodeAsArray('test')
返回的内容。如果它看起来正常,将结果传递给new JXG.Util.Unzip(result)
,调用它的Unzip
方法,等等。看起来decompress
需要一个Base64编码的字符串。如果您传递的字符串不是那样编码的,我不希望该方法能够工作。感谢您的建议,我刚刚尝试使用base64编码的字符串,但仍然存在相同的问题。问题是,由于错误没有深入到下面的函数中,我怀疑第一行的JXG失败了,因此JXG.Util中的Util可能无法访问。JXG是否可以未定义,因此在这一点上没有任何属性?感谢您提供的示例测试字符串。这让我意识到默认的c#gzip压缩最终是问题所在。使用ionic的zlib实现和您推荐的压缩级别9,最终为JXG生成了一个兼容的字符串,感谢并希望这能帮助其他尝试使用c#字符串压缩和JXGCompressor的人。是的,压缩强度9为我修复了它!谢谢