【问题标题】:get image contain not download again获取图像包含不再下载
【发布时间】:2014-10-17 13:31:47
【问题描述】:

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

语法 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 绝对路径。

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

【问题讨论】:

    标签: php jquery html css yii


    【解决方案1】:

    我会使用clone。通过快速测试,图像不会重新下载。 (请参阅底部的屏幕截图,或打开您的网络面板并进行测试)

    实施

    因此,您可以设置 #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" />

    【讨论】:

    • 我不想克隆图像。重绘相同的 div。
    • 重绘同一个 div 是......克隆?你可以$("#test").clone().show().prependTo("body"); - 检查更新的答案
    • 感谢您的回复。但我的问题是 div 高度宽度和背景图像来自服务器端的这个值我正在重绘 div。每当我重绘该 div 时,背景图像都会下载,背景图像值来自服务器端。所以我不想重新下载相同的图像..
    猜你喜欢
    • 1970-01-01
    • 2011-07-20
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 2022-08-17
    相关资源
    最近更新 更多