预加载所有使用的内联svg图像?

时间:2014-06-05 07:24:53

标签: html css html5 css3 svg

我的Web应用程序使用直接嵌入在我的css样式表中的内联svg图像。在运行时我不知道的不同类中有多个图像。

目前svg-images在首次使用时被加载到浏览器缓存中,这会导致短暂的闪烁。有没有办法告诉浏览器他应该在显示之前将这些内联svgs加载到浏览器缓存中?

例如,当显示对话框时,我有一个模糊的svg图像来创建模糊的背景:

.blur {
  -webkit-filter: blur(2px);
  -ms-filter: blur(2x);
  filter: blur(2px);
  filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius='2');
  filter: url('data:image/svg+xml;utf8,<svg version="1.1" xmlns="http://www.w3.org/2000/svg" height="0" width="0"><defs><filter id="blur"><feGaussianBlur stdDeviation="2"></feGaussianBlur></filter></defs></svg>#blur');
}

还有更多更深入的css选择器,例如:

#myApp > .module1 > .module2 > .dialog > .titlebar > .icon { ... }

目标是保持tcp连接数低,这就是嵌入它们的原因。对此有什么解决方案吗?

我在我的页面上使用jQuery,因此jQuery驱动的解决方案是一个有效的选项。

1 个答案:

答案 0 :(得分:3)

我喜欢这种方式,如何通过CSS预加载图像

body:after {
  content: url('../img1.png') url('../img2.svg') url('../img3.png');
  display: none;
}