我想image/*在数据URI中使用MIME类型,例如data:image/*;base64,R0lGODlhE...在<img/>元素中.
我知道您可以包括css和图像以及其他文件类型,这些文件已经以base64形式存储在javascript文件中。但是,它们相当庞大……并且压缩后,它们缩小了很多,即使有base64编码带来的〜33%的开销。
未压缩的图像是data:image / gif; base64,data:image / jpeg,data:image / png和css是data:text / css; base64。那么,我可以/应该使用哪种MIME类型来包含压缩的css或图像数据URI?(或者,如果gzip + base64无法正常工作,我还有其他压缩方法可以减小字符串的大小,同时仍将数据存储在javascript中吗?)
..edit ..我认为这个问题被误解了。我不问,如果我应包括在JavaScript中的base64 gzip压缩的字符串。是的,我知道在大多数情况下,最好在服务器端gzip javascript和其他文件。但这不适用于用户脚本;一个用户脚本没有服务器,并且只包含一个文件。Firefox允许使用@require指令,但是Opera和Chrome不允许使用,加载任何本地文件时,本地文件安全性问题也随之而来。因此,脚本所需的任何内容都必须是:1)在Web上(慢)或2)嵌入在用户脚本中(大)。
现在,这个问题假设大的比慢的更可取,但是大的并不一定意味着我们完全忽略了多大。如果可以更小,那就是一种改进。
因此,假设在JavaScript中嵌入了base64字符串,问题是如何使它变成有意义的东西。
要么:
1)atob()可以在javascript中将原始base64编码的gzip转换为原始gzip。(atob不需要知道媒体类型)。然后的问题是如何解压缩原始的gszip css或图像文件,以便将结果输出输入文档中。
或2)给定正确的媒体类型,浏览器至少理论上(根据datauri RFC)应该能够直接从datauri加载任何文件。“”足以加载未压缩的CSS样式表。这里的问题是什么链接类型属性和datauri媒体类型组合应该起作用(以及它适用于哪些浏览器)?对于用户脚本,最好是可以在Opera,FF和Chrome中使用的组合。
数据URI是否有默认字符集?我阅读了规范,但没有看到。
例如,如果我有一个源映射的数据URI,希望可以在浏览器中对其进行可靠地解释,那么可以忽略字符集吗?
//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJza...
Run Code Online (Sandbox Code Playgroud)
与
//@ sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJza...
Run Code Online (Sandbox Code Playgroud)
我在GitHub问题中看到人们在没有显式的情况下在源映射文件中使用汉字时遇到了问题charset=utf-8。因此,如果有一个默认值(或者至少,如果我们可以期望浏览器选择了一个默认值),那么似乎不是一个默认值utf-8...
Internet Explorer不支持iframe网址的数据uri方案(请参阅http://msdn.microsoft.com/en-us/library/cc848897%28v=vs.85%29.aspx).其他浏览器呢.由于浏览器检测加载了测试和面向未来的问题,我想使用特征检测来解决此问题.
那么:如何检测浏览器是否支持iframe的数据uri方案?
javascript iframe cross-browser data-uri-scheme browser-feature-detection
我正在尝试显示图像,但图像类型是blob.
如何显示blob数据类型图像?
我尝试过:
function getBlob() {
$data = $this->user_model->getBlob();
echo "<img src="base64_encode( $data['IMAGE'] )">";
}
Run Code Online (Sandbox Code Playgroud)
但是不起作用.
data-uri ×3
javascript ×2
mime-types ×2
base64 ×1
iframe ×1
mysql ×1
php ×1
source-maps ×1
uri ×1