3

在 HTML 页面中包含数据 URI 时,最好使用 ASCII、UTF-8 还是 base64?

我将它用于可以表示为任何这些的 SVG 文件。

UTF-8(一旦 URI 编码)在未压缩时仍然比 base64 小一点,但是使用 base64 还有其他好处(比如 CPU 性能)吗?

4

1 回答 1

4

我正在做一些与此相关的测试。关于前端,我认为除了 base64 需要在渲染之前进行解码之外,差别很小。服务器端文件越小,要处理的数据越少,使用的cpu就越少。有了这个,我怀疑 UTF-8 将是 CPU 密集度最低的服务器端。

一些半相关的注释:

就文件大小而言,当服务器 gzip 压缩时,svg 胜过 png。

我读过由于打开服务器端 gzip 压缩导致 cpu 受到很小的影响。但是,必须处理更少的数据输出而获得的 CPU 收益比必须 gzip 压缩每个文件更重要。

SVG 的渲染比 png、jpg、gif、bmp 等处理器更密集。可以只渲染位图。SVG 需要计算、光栅化,然后渲染。为许多或复杂的 svg 设置动画时要注意的事项。

我发现的一些统计数据

  • 徽标 png = 9.2kb -> gzip = 9.2kb
  • 徽标 svg = 10.5kb -> gzip = 4.4kb
  • 使用 python scour 优化后的 logo svg svg = 9.4kb -> gzip = 3.9kb
  • logo svg url 编码 = 10.9kb -> gzip 4kb
  • logo svg base64 编码 = 12.4 -> gzip 5.5kb
于 2013-04-17T06:25:53.460 回答