代码之家  ›  专栏  ›  技术社区  ›  Mr. Flibble

“new Image()”是否允许使用缓存(JavaScript)

  •  3
  • Mr. Flibble  · 技术社区  · 14 年前

    如果我用 new Image() 要在JavaScript中加载图像,如果可能,它会使用缓存版本,还是总是加载新的副本?

    var imgObj = new Image();
    imgObj.src = 'http://...';
    imgObj.onload = function (loadedImg) { }
    
    3 回复  |  直到 14 年前
        1
  •  7
  •   Nick Craver    14 年前

    如果它在缓存中,它将加载 <img> 在你的标记中。

        2
  •  6
  •   gblazex    14 年前

    onload 为了总是发生(即使在缓存中),您应该定义 加载 之前 src

    var imgObj = new Image();
    imgObj.onload = function (loadedImg) { }
    imgObj.src = 'http://...';
    
        3
  •  2
  •   Robusto    14 年前

    可以通过添加虚假的查询字符串参数来强制重新加载。如果为图像的src属性分配URL的语句是

    imgObj.src = 'http://www.mySite.com/images/anImage.png';
    

    imgObj.src = 'http://www.mySite.com/images/anImage.png?foo=0';
    

    请理解,在后续加载时,除非更改查询字符串参数,否则它仍将使用缓存副本。