当前位置: 首页 > 面试题库 >

我应该在CSS或HTML中将图像作为data / base64嵌入吗

臧梓
2023-03-14
问题内容

为了减少服务器上的请求数量,我将一些图像(PNG和SVG)作为BASE64直接嵌入到CSS中。(它在构建过程中是自动化的)

像这样:

background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAFWHRTb2Z0d2FyZQBBZG etc...);

这是一个好习惯吗?有什么理由可以避免这种情况?是否有一些不支持数据URL的主流浏览器?

额外的问题:对CSS和JS这样做也有意义吗?


问题答案:

这是一个好习惯吗?有什么理由可以避免这种情况?

这是一个好习惯,通常仅适用于在IE兼容性无关紧要时将一起使用的非常小的CSS图像(如CSSSprites),并且保存请求比可缓存性更重要。

它有许多明显的缺点:

  • 在IE6和7中根本不起作用。

  • 在IE8中仅适用于最大32k的资源。这是在base64编码之后适用的限制。换句话说,不能超过32768个字符。

  • 它保存了一个请求,但是却使HTML页面肿!并使图像不可缓存。每当包含页面或样式表加载时,它们就会加载。

  • Base64编码使图像大小膨胀了33%。

  • 如果在压缩后的资源中提供data:图像,几乎可以肯定会对服务器资源造成巨大的压力!传统上,图像压缩需要占用大量CPU资源,而尺寸却很少减少。



 类似资料:
  • 问题内容: 纯粹出于好奇,Base64图像嵌入在哪些浏览器中起作用?。 我意识到对于大多数事情来说,通常不是一个好的解决方案,因为它会增加页面的大小-我很好奇。 一些例子: HTML: CSS: 问题答案: 更新 现在,所有主要浏览器都支持数据URI。从版本8开始,IE也支持嵌入图像。 现在,以下Web浏览器支持数据URI: 基于壁虎,例如Firefox,SeaMonkey,XeroBank,Ca

  • 我有申请发邮件。图书馆使用了斯威夫特·梅勒。我已经生成了用于发送电子邮件html字符串,其中包含各种标记,包括标记我可以将img src标记转换为bas64图像吗 至

  • 问题内容: 如何将.png文件嵌入空白的“ file.html”中,以便在任何浏览器中打开该文件时都能看到该图像?在这种情况下,图像文件不是从HTML链接到的,而是图像数据嵌入在HTML本身中。 问题答案: 在线上有一些base64编码器可以帮助您解决这个问题,这可能是我见过的最好的编码器: http://www.greywyvern.com/code/php/binary2base64 该页面显

  • 问题内容: 我一直在查看油脂猴子用户脚本的来源,并在他们的CSS中注意到以下内容: 我可以理解,滑脂脚本希望将其可以捆绑的所有内容捆绑在源代码中,而不是将其托管在服务器上,这很明显。但是由于我以前没有看过这种技术,因此我考虑了它的使用,并且由于许多原因,它似乎很有吸引力: 它将减少页面加载时的HTTP请求数量,从而提高性能 如果没有CDN,则它将减少通过Cookie与图像一起发送而产生的流量 可以

  • 问题内容: 我有一个要求用户将其图像上传到哪里,我必须将其转换为某种内容并将其发送到.Net REStful服务。我是angular js的新手。有人可以帮忙吗 问题答案: 我建议您使用 https://github.com/ninjatronic/angular- base64 。 在按照说明使用该库之后,您可以简单地调用: 不要忘记在模块中注入:

  • 问题内容: 我有一个mongoDB数据库,并且恢复了对应于我的Image的base64数据。 我不知道如何将base64数据转换为Image。 问题答案: 如果您想在网页中使用它,只需将base64编码的图像放入HTML文件即可。 有关更多信息,请参见Wikipedia。