Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 如何为<;预加载图像文件;图像>;,svg元素?_Image_D3.js_Svg_Preload - Fatal编程技术网

Image 如何为<;预加载图像文件;图像>;,svg元素?

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))) })

是否可以预加载将用于svg元素的图像文件

使用d3,我为每个数据添加一个图像,如下所示:

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在这里没什么可做的。唯一的问题是,您必须解析数据以提取正确的源。