Image 如何为<;预加载图像文件;图像>;,svg元素?
是否可以预加载将用于svg元素的图像文件 使用d3,我为每个数据添加一个图像,如下所示:Image 如何为<;预加载图像文件;图像>;,svg元素?,image,d3.js,svg,preload,Image,D3.js,Svg,Preload,是否可以预加载将用于svg元素的图像文件 使用d3,我为每个数据添加一个图像,如下所示: var images= g.append('svg:image') .attr('y',function(d,i){ return (yAxisScale(new Date(d.Year, 0, 1, 0))) })
var images= g.append('svg:image')
.attr('y',function(d,i){
return (yAxisScale(new Date(d.Year, 0, 1, 0)))
})
.attr('x',function(d,i){
return(xAxisScale(d.Tournament)+30)
})
.attr("width",function(d,i){
return imageScale.bandwidth()*6
})
.attr("xlink:href",function(d,i){
var filename = d.Winner;
var position = filename.indexOf("(")
if (position != -1)
filename = filename.slice(0,position)
position = filename.indexOf(":")
if (position != -1)
filename = filename.slice(position+1,filename.length)
filename=filename.replace(/\s/g,'')
return "/img/" + filename + ".jpg"
})
是的,这是可能的。SVGImage将使用http缓存版本(如果可用),就像任何其他请求一样。您能详细说明我如何使用d3实现它吗?据我所知,javascript图像对象使用的是元素,而不是元素。SVGImage和HTMLImage在加载请求的资源时都将使用http缓存。因此,您可以使用internet上可用的任何预加载程序,它都可以工作,无论是基于
元素、XHR请求、iframe对象还是任何将向资源发出http请求的对象。D3在这里没什么可做的。唯一的问题是,您必须解析数据以提取正确的源。