Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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
Chrome/webkit中的本机javascript解压缩功能_Javascript_Google Chrome_Webkit_Compression - Fatal编程技术网

Chrome/webkit中的本机javascript解压缩功能

Chrome/webkit中的本机javascript解压缩功能,javascript,google-chrome,webkit,compression,Javascript,Google Chrome,Webkit,Compression,如果发送的数据是base64编码和压缩的(例如,使用python的zlib.compress()),则可以使用本机Chrome函数window.atob()将base64转换为二进制数据。是否有类似的本机javascript函数来解压缩zlib压缩数据?有什么黑客可以做到这一点吗 我知道解压数据的代码已经在浏览器中,因为它可以接收带有gzip头的HTML 我不是在寻找一个javascript库来进行解压缩 如果你在浏览器上找到一个解压方案,我可以将它压缩成那种格式进行传输。换句话说,任何解压例程

如果发送的数据是base64编码和压缩的(例如,使用python的zlib.compress()),则可以使用本机Chrome函数window.atob()将base64转换为二进制数据。是否有类似的本机javascript函数来解压缩zlib压缩数据?有什么黑客可以做到这一点吗

我知道解压数据的代码已经在浏览器中,因为它可以接收带有gzip头的HTML

我不是在寻找一个javascript库来进行解压缩


如果你在浏览器上找到一个解压方案,我可以将它压缩成那种格式进行传输。换句话说,任何解压例程都是可以接受的。

试试。

没有公开这样的函数。

这里有一个技巧,可以将包含压缩数据的PNG绘制到
画布中,然后逐像素读取数据:。如果您想要使用浏览器的本机压缩库,这里有一个选项。不幸的是,您必须将
ImageData
转换为javascript中的字符串。

2020更新 Chrome 80+支持
压缩流
解压缩流
API Gzip压缩流

const compressedReadableStream=inputReadableStream.pipeThrough(新的压缩流('gzip'));
压缩阵列缓冲器

函数compressArrayBuffer(输入){
const stream=新响应(输入).body
.管道通过(新压缩流(“放气”);
返回新响应(stream.arrayBuffer();
}
Gzip将Blob解压缩为Blob

这会将输入视为gzip文件,而不考虑mime类型。输出Blob的mime类型为空

异步函数解压缩blob(blob){
const ds=新的解压缩流('gzip');
const decompressedStream=blob.stream().pipeThrough(ds);
return等待新的响应(decompressedStream).blob();
}

也许您只是在寻找“btoa()”,但对于record base64编码,它不是压缩;事实上,它使数据更大。好吧,我想我不清楚。我不是在找btoa()。我知道。我说的是解压缩用LZ77或LZW或gzip或任何类似的压缩算法压缩的数据。这就是我所怀疑的:-)不幸的是,我不知道有哪种API会暴露这一点,但我不熟悉非标准浏览器的内部结构,尤其是Chrome。我不想寻找atob的反面。一个常见的com位置是获取数据,使用LZ77或类似算法压缩数据,对其进行base64编码,然后将其传输到客户端,客户端在客户端撤消base64编码,然后解压缩数据。撤销base64编码可以通过atob本机完成。什么本机函数(如果有的话)可以撤销压缩?好的,你怎么知道的?我怎样才能相信这一点呢?通过查看每个浏览器提供的公开的全局API,例如在JavaScript控制台中。链接已经消失:更新了带有archive.org的链接。就在我问这个问题9年后——很久以前,我不记得我为什么想要这个了。:-)