获取图片不包含再次下载

时间:2014-10-17 13:31:47

标签: php jquery html css yii

我使用yii框架。我已经创建了一个函数/控制器,它检查图像文件是否存在于目录中,如果文件存在则使用file_get_contents()函数传递图像并设置div标签的背景。如果file不存在,则默认图像文件包含正在传递。

语法php: -

  header('Content-Type: image/png');
  echo file_get_contents($location); 

在javascript中我创建了一个绘制adiv的函数并设置该div的背景 语法: -

 function drawDiv()
{
$('.divID').html("<div id="test"></div>")
$('#test').css({background-image : url('http://location/test/getimage')});
}

当我再次重新绘制div时,每次都会下载图像。 如果我设置它下载一次的url绝对路径。

我想要的是,如果图像存在或不存在,则应下载一次。 PLZ解决问题.. 如果你有其他解决方案告诉我。

1 个答案:

答案 0 :(得分:0)

我会使用clone。通过快速测试,图像不会重载。 (请参见底部的screengrab,或打开网络面板并进行测试)

实施

因此,您可以设置#test(使用背景图像和您想要的样式),但隐藏。只要你想要它就clone()

<div id="test" style="background-image:url(http://location/test/getimage);display:none;">
</div>

你的Javascript就是

$("#test").clone().show().prependTo("body");

Try the jsFiddle

  • 请注意,图片只下载一次(打开网络面板,然后查看)

代码测试

$( "img" ).clone().prependTo( "body" );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img src="https://www.google.co.uk//images/srpr/logo11w.png" />

enter image description here