<img src=“;数据:..使用gzip文件
<img src="data:... with gzipped file
这可能更像是一个理论问题,但仍然如此。
使用内联base64
数据在图像源参数中传递它非常简单。我们是这样做的:<img src="data:image/png;base64,[base64 string]" />
。
但是,如果这个base64
字符串中表示的数据被gzip映射了呢?有没有办法告诉浏览器这件事?当通过添加Content-Encoding: gzip
头从HTTP服务器加载图像时,可以简单地完成这一操作。但是内联方法可能吗?
我找不到任何有关这方面的信息。我看到的唯一解决方案是使用JavaScript"unbase64"数据,"gunzip"它,然后再次"base64"它,并将它放在src
属性中。
但这似乎不是一个好的解决方案。。。
浏览器支持传输级别的gzip编码(即HTTP)。他们在数据级别上没有任何支持。
如果你要提供一个基于base64的gzipped数据,那么它就不是image/png
,而是application/x-gzip
,浏览器将无法处理它,因为它会试图将其解码为图像。
如果你这样做,但使用正确的MIME类型,那么浏览器仍然不知道该怎么处理它,因为它不是图像格式,也不支持解码gzip数据,然后猜测里面的数据是什么格式。
但是,当我们使用内联base64数据时,我们没有头。
数据必须来自某个地方。它通常嵌入在HTML文档中(在这种情况下,当通过HTTP发送时,整个文档可以被压缩),或者从JavaScript本地生成(在这种情形下,压缩它只是为了立即解压缩是没有意义的,没有网络可以发送它,因此压缩不会提高性能)。
"如果你要提供一个基于base64的gzip映射数据,那么它就不是image/png,而是application/x-zip"
那么呢?
在检测到文件已经完成解压缩后,用javascript修复标题,使其了解数据,最终您将得到img src=data:blah-blah-
我不知道为什么我们仍然担心7位和EBCDIC链接。这是无稽之谈,图片:data/png;gzip,。。。这不是火箭科学。
它删除单词"gzip",并将is替换为经过gzip处理的字符串。
有人窃听维瓦尔迪人,他们总是把东西放在第一位。
- 在指令控制器中使用$attrs时出现问题
- 如何使用jQuery自动打开页面上的所有链接
- 如何使用url加载程序在webpack中导入多个图像
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- <img src=“;数据:..使用gzip文件
- 有没有一种方法可以使用浏览器'使用Javascript的本机gzip解压缩
- 如何使用 Node.js 和 socket.io 设置 gzip 编码
- 使用 gzip 压缩大文件 - IE8 及更高版本
- 使用pako.js的javascript中的Gzip字符串
- 如何使用谷歌应用引擎为AJAX请求提供gzip内容
- 使用Gzip压缩工具
- 压缩Javascript &CSS使用Gzip
- Safari:无法解码原始数据;使用GZIP时
- 使用AJAX加载GZIP JSON文件
- 什么& # 39;内容类型# 39;在提供gzip文件时使用的头
- 如何在 Rhino 中从使用 gzip 编码的服务器加载 JavaScript 库