浏览器还可以缓存嵌入式base64图像吗?

问题描述:

我想知道是否有任何现代浏览器实际缓存嵌入图像 - base64字符串,或不是?浏览器还可以缓存嵌入式base64图像吗?

也是在不久的将来的可能性?基于W3C或主流浏览器的官方文档。

+1

据我所知,如果base64字符串是HTML文档的一部分(内联),那么每次下载文档时都必须将它们下载并解析为图像。如果它是外部CSS文件中的背景图像,那么它可以用CSS文件进行缓存,但仍然需要用每个请求进行解析。我也读过base64编码在图像字节的顶部增加了大约30%的开销,但这很大程度上可以通过压缩来抵消。 – pwdst

+0

@pwdst谢谢,我正在阅读,我也在同一页面。如果您将您的评论发布为答案,我很乐意为其提供支持。 – Mahdi

+0

我已经根据要求添加了这个答案。 – pwdst

我不这么认为,因为你错过了Resource Identifier作为缓存图像的关键。对于嵌入式图像,您只有数据本身。

此外,对内联图像的潜在有条件请求必须位于包含它的HTML文档的级别。内联图像只是数据,没有附加请求。但是HTTP不支持像部分数据的条件请求。

+0

有什么方法可以把那里吗?作为一个属性可能? – Mahdi

+2

您的意思是添加资源标识符?没有。据我所知,base64编码数据被视为嵌入资源的一部分(例如HTML或CSS文件)。显然,如果该资源被缓存,其中的数据将被缓存作为其中的一部分。 –

+1

@ OllyHodgson谢谢你的解释,这是有道理的。 – Mahdi

据我所知,如果base64字符串是HTML文档(内联)的一部分,那么每次下载文档时都必须将其下载并解析为图像 - 无法缓存文档。如果它是外部CSS文件中的背景图像,那么它可以用CSS文件进行缓存,但仍然需要用每个请求进行解析。我也读过base64编码在图像字节的顶部增加了大约30%的开销,但这很大程度上可以通过压缩来抵消。