Если я использую new Image() для загрузки изображения в JavaScript, будет ли он использовать кэшированную версию, если это возможно, или всегда будет загружать новую копию?
new Image()
Он будет загружаться из кэша, если он там есть, так же, как <img> в вашей разметке.
<img>
Следует отметить, что если вы хотите, чтобы onload всегда происходил (даже если он находится в кеше), вы должны определить onload до src.
onload
src
var imgObj = new Image(); imgObj.onload = function (loadedImg) { } imgObj.src = 'http://...';
Вы можете принудительно перезагрузить, добавив фиктивный аргумент строки запроса.Если ваш оператор, назначающий URL-адрес свойству src изображения, равен
imgObj.src = 'http://www.mySite.com/images/anImage.png';
, вы можете отобразить его как
imgObj.src = 'http://www.mySite.com/images/anImage.png?foo=0';
Просто поймите, что при последующих загрузках он все равно будет использовать кэшированную копиюесли вы не измените аргумент строки запроса.