Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
内存中的Javascript压缩。在发布后用Python解压。还必须处理非ascii_Javascript_Python_Compression - Fatal编程技术网

内存中的Javascript压缩。在发布后用Python解压。还必须处理非ascii

内存中的Javascript压缩。在发布后用Python解压。还必须处理非ascii,javascript,python,compression,Javascript,Python,Compression,我需要能够在Javascript中压缩字符串,但不保存临时文件。然后我将通过POST发送这些压缩数据。我将在Python中接收它,所以我需要能够在那里解压缩它。我实现了以下内容,却发现它只适用于ascii字符。我将要阅读网页,永远不知道我将得到什么字符 (我需要这样做的原因是字符串可能会变得很长,因此需要很长的时间才能让慢速网络发布。)您可以尝试事先对字符串进行base64编码(这将产生一个压缩流,其大小从1.5到两倍,如果可以直接压缩的话) 还有另一个实现(这是gzip Deflate算法)

我需要能够在Javascript中压缩字符串,但不保存临时文件。然后我将通过POST发送这些压缩数据。我将在Python中接收它,所以我需要能够在那里解压缩它。我实现了以下内容,却发现它只适用于ascii字符。我将要阅读网页,永远不知道我将得到什么字符


(我需要这样做的原因是字符串可能会变得很长,因此需要很长的时间才能让慢速网络发布。)

您可以尝试事先对字符串进行base64编码(这将产生一个压缩流,其大小从1.5到两倍,如果可以直接压缩的话)

还有另一个实现(这是gzip Deflate算法)

或者,您可以尝试将非ASCII字符替换为\xNN(NN=字符的十六进制代码),以转义这些字符。当然,你也必须避开斜杠

无论如何,您不太可能实现超过10倍的速度增长,我担心这将超过编码开销的平衡。在不了解更多用例的情况下,我建议使用Deflate。

来自OP comment

javascript读取DOM元素并发送该元素。这对我来说是行不通的 出于各种原因指向来源,其中一个主要原因是我需要 页面上由javascript创建的元素。我还需要 浏览器为我计算的计算样式


一种解决方案是使用Python自动化浏览器,然后从中检索DOM。

使用和。(LZW是古老而过时的——现代方法要好得多。)在使用base 85编码之间,选择85个ASCII字符比实验或标准文档表明的要安全。Base 85就是每个字符都是Base 85数字中的一个数字,其中五个这样的数字编码32位。

当然1)读取数据,2)压缩数据,3)发送压缩数据,4)接收和解压缩数据需要更多的工作,然后第4步只是指向数据,并获取数据,JavaScript本身?JavaScript不能写入临时文件,所以“需求”基本上是不可能做到的。为什么不把URL发送回Python并让它抓取它呢?你的web服务器不是已经在做gzip压缩或类似的工作了吗?@JonathanVanasco“web服务器将公布它可以执行gzip/deflate,浏览器将自动压缩并发送“这不是真的。HTTP不是这样工作的;服务器可以发送压缩数据,因为它知道客户端能够处理压缩数据。如果您使用base64编码,您应该确保两种语言使用相同的字符集。62,63个字符允许使用替换字符,这可能具有特殊意义。