我找不到这个问题的答案,当浏览器从缓存中获取 SVG 时,它是否重新计算 xml,它是否存储了它已经创建的“图像”?(如何?)
我本来不会想到的,但后来我注意到重复 svgs 的加载速度有多快。
我还注意到页面徽标(在移动浏览器中)的速度很慢,这让我认为他们重新计算了 SVG,所以我已经转移到移动设备的 PNG(显然已缓存)以节省大量计算工作低端手机。
那么也许,答案是否取决于浏览器/浏览器类型/浏览器设置?
*顺便说一下,我的 svg 是压缩的 svgz
有时会,有时不会。大多数浏览器都会努力不重新渲染内容,除非他们必须这样做。SVG 1.2 Tiny 中有一个缓冲渲染属性,如果您使用 Opera,可能会有所帮助,但其他浏览器会尝试自动执行操作而不需要此类提示。
不过,浏览器通常不会将 SVG 内容缓存为简单的位图。他们确实缓存了诸如应用了变换的形状和文本的绝对位置和大小、css 树结构、渐变等,然后使用这些信息,他们可以更快地重绘内容,而不是每次重绘都必须解决。此类信息允许浏览器使用 JavaScript 和 SMIL 动画复制部分 SVG 内容以及用户滚动。