我认为这将取决于具体情况。
精灵可以提供帮助.. 但是如果您的精灵包含一些简单的线条但必须是 500px * 500px... 那么画布(甚至是 svg)确实会小很多。最重要的是,通常会缓存外部 javascript(甚至比图像更好)。在这方面,它们确实有助于减轻体重。
但是,如果您希望 IE 也能“工作”,那么您可能需要开始提供一些 html5/canvas 垫片,是的,这会增加权重。
编辑:
看看这个jsfiddle 示例(我为这个问题准备了),其中使用径向渐变创建了全尺寸的“花岗岩”背景。正如您所看到的(在源代码中),这比单独的图像少了很多字节(并且总是像素完美)。
另一方面,它也(取决于复杂性)需要一些常规图像不会花费的计算时间(在将必要的字节下载到客户端之后)。
Edit2:
我找到了一个链接,他们在其中进行了一些测试。
在我们的 sprite 示例中,原始 SVG 文件为 2445 字节。PNG 版本只有 1064 字节,双像素比率设备的双倍 PNG 为 1932 字节。在第一次出现时,矢量文件在所有帐户上都会丢失,但对于较大的图像,光栅版本的大小会更快地升级。
由于是 XML 格式,SVG 文件也是人类可读的。它们通常包含非常有限的字符范围,这意味着它们在通过 HTTP 发送时可能会被大量 Gzip 压缩。这意味着实际下载大小比原始文件小很多倍——很容易超过 30%,可能更多。PNG 和 JPG 等光栅图像格式已经被压缩到最大程度。
然而,请注意这一切仍然取决于图像的复杂程度:作为一个极端的反例......尝试描述一张福雷斯特(树叶......)的全彩照片而不是简单的 jpg......