javascript - 浏览器加载同一张图片 2 次

标签 javascript html css

我正在尝试预加载图像并将其与 css background-image 一起使用,但我在使浏览器(目前仅使用 Chrome 测试)预加载图像时遇到了问题。

我正在用这段代码加载图像:

for(var i = 1; i <= options.imageCount; i++){
    let img = new Image()
    var src = options.imagePath + i + "." + quality + "." + options.imageFormat

    img.onload = () => {
        completeCount += 1

        if(completeCount == options.imageCount){
            callback(true)
        }
    }

    img.src = src
}

如果我尝试将 Images 对象附加到容器中,它工作正常。

DOMImgContainer.appendChild(img);

但是如果我尝试将图像与 css background-image 属性一起使用

DOMZoom.style.backgroundImage = "url('"+ img.src + "')";

浏览器再次加载图像,而不是使用已经预加载的图像。

Network in DevTools

在上图中,第一项是使用预加载代码加载的图像,第二项是单击按钮后再次加载的相同图像,并将图像添加到容器的背景图像属性中。提前致谢!

最佳答案

我猜你弄错了路径,将鼠标悬停在网络选项卡中的两个图像文件名上,并确保完整路径匹配。

要么是那个,要么是你的服务器设置了无缓存 header ,但我不确定这是否会导致在单个页面上多次加载同一图像。

关于javascript - 浏览器加载同一张图片 2 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55033229/

相关文章:

javascript - 如何在 Javascript 中切换 "show"时添加下推/上推效果?

javascript - 在客户端将大文件 (> 2GB) 压缩成 ZIP

css - 带有 CSS 的 Knitr 样式表

javascript - 我怎样才能实现一个简单的选择下拉菜单的引导样式效果-Jquery/CSS

javascript - 如何使用 $.ajax 在使用 jquery 加载的内容中包含 javascript

JavaScript:参数列表后缺少语法错误 )

html - 子级到绝对定位父级的自动宽度

javascript - 同步文本框(在表单中输入)

html - 如何从顶部显示居中的div?

css - DIV框透明,里面的文字不透明