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

时间:2010-10-19 19:25:00

标签: javascript caching

如果我使用new Image()在JavaScript中加载图片,是否会使用缓存版本,或者它是否会加载新副本?

var imgObj = new Image();
imgObj.src = 'http://...';
imgObj.onload = function (loadedImg) { }

3 个答案:

答案 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';

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