如果我使用new Image()
在JavaScript中加载图片,是否会使用缓存版本,或者它是否会加载新副本?
var imgObj = new Image();
imgObj.src = 'http://...';
imgObj.onload = function (loadedImg) { }
答案 0 :(得分:7)
如果它存在,它将从缓存加载,就像标记中的<img>
一样。
答案 1 :(得分:5)
需要注意的一点是,如果您希望onload
始终发生(即使它在缓存中),您应该在onload
之前定义 src
。< / p>
var imgObj = new Image();
imgObj.onload = function (loadedImg) { }
imgObj.src = 'http://...';
答案 2 :(得分:2)
您可以通过添加伪造的查询字符串参数来强制重新加载。如果您的语句为图像的src属性分配URL是
imgObj.src = 'http://www.mySite.com/images/anImage.png';
您可以将其渲染为
imgObj.src = 'http://www.mySite.com/images/anImage.png?foo=0';
请理解,在后续加载时,除非您更改查询字符串参数,否则它仍将使用缓存副本。