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

o

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

像这样:

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

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

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

佩卡

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

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

它有许多明显的缺点:

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

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

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

嵌入Base64图像

解码 base64 URL 并嵌入 HTML

我应该在用例图中将系统作为参与者包括在内吗?

作为Base64,将背景图像数据嵌入CSS是好做法还是坏做法?

我可以处理水印的base64编码图像吗?

data:image / png; base64是img标签的唯一base64编码吗?

我应该在html标记中加上“ javascript:”吗?

反应本地支持base64编码的图像吗?

如何使用pytest-html在HTML中嵌入base64图像?

HTML:嵌入二进制图像而不进行base64压缩

HTML嵌入式Base64图像的JEditorPane内容类型

我应该在Angular 2的angular-cli或index.html中包含css和js吗?

如何发送带有base64嵌入式图像的电子邮件

如何解码base64 fbx嵌入式图像

Thymeleaf中嵌入的Base64图像列表将不会显示

如何将 base64 图像嵌入到 python 3 guizero/tkinter 中?

嵌入CSS / SCSS数据URI中的SVG是否仍需要进行base64编码?

我应该在将文件发送到后端之前还是之后将其转换为 Base64?

我应该在Angular的类中将方法编写为箭头函数吗

我应该在.net core全球化中将Localizer传递给ViewData吗?

我应该在GraphQL中将Ints用于货币值吗?

我应该在MySQL中将产品列表存储给具有数组的用户吗?

我应该在 Java 中使用 ++x 而不是 x++ 作为方法参数吗?

我应该在客户端上将GraphQL ID作为字符串处理吗?

我应该在班级中使用分配器作为成员变量吗?

我应该在HMAC中使用密码哈希作为秘密密钥吗?

如何在fabricjs中将画布转换为具有嵌入式图像base64的SVG

如何使用htmlcomponent导出带有嵌入式图像(base64,数据uri)的HTML文本?

HTML:我们应该在 HTML 文本字段中使用 `type="text"` 吗?