首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止在使用JQuery append()追加图像时重新加载图像

问防止在使用JQuery append()追加图像时重新加载图像
EN

Stack Overflow用户
提问于 2012-01-06 22:03:45
回答 1查看 1.5K关注 0票数 1

我有一个AJAX调用,它返回一些JSON,包括一些图像URL。我想为它们将图像添加到DOM中,但我将一次又一次地获得相同的图像,并且我不想增加带宽成本。默认情况下,浏览器不会为我缓存这些图像--如果我用JQuery创建一个img元素并追加它,每次我这样做时浏览器都会请求该图像。

所以我以隐藏div的形式添加了一个缓存,如下所示:

代码语言:javascript
复制
<div id="imageCache" style="display: none;"></div>

然后在JQuery中循环从服务器返回的JSON对象,这些对象上可能有一个imageKey:

代码语言:javascript
复制
if (post.imageKey) {
    var cachedImage = $("#imageCache ." + post.imageKey);

    if (cachedImage.length) {
        var newImage = $(cachedImage).clone();
        $("#" + post.key).append(newImage);
    }
    else {                  
        var newImage = $("<img src='/image?key=" + post.imageKey + "' alt='" + post.title + "' class='offeredPost " + post.imageKey + "'/>");
        $("#" + post.key).append(newImage);

        cachedImage = $(newImage).clone();
        $("#imageCache").append(cachedImage);
    }
}

但并不快乐。克隆的图像被添加到DOM中,但是一旦页面的JS完成,浏览器(Chrome)就会对该图像发出新的请求。

有什么想法吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-01-06 22:18:35

使用宽度和高度设置为图片的宽度和高度的div,并使用background属性加载图片url('myImage.jpg')。如果div大于图片,请使用no-repeat,这样图片就不会重复

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8759000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档