Позволяет ли 'new Image ()' использовать кеш (JavaScript) - PullRequest
3 голосов
/ 19 октября 2010

Если я использую new Image() для загрузки изображения в JavaScript, будет ли он использовать кэшированную версию, если это возможно, или всегда будет загружать новую копию?

Ответы [ 3 ]

7 голосов
/ 19 октября 2010

Он будет загружаться из кэша, если он там есть, так же, как <img> в вашей разметке.

5 голосов
/ 19 октября 2010

Следует отметить, что если вы хотите, чтобы onload всегда происходил (даже если он находится в кеше), вы должны определить onload до src.

var imgObj = new Image();
imgObj.onload = function (loadedImg) { }
imgObj.src = 'http://...';
2 голосов
/ 19 октября 2010

Вы можете принудительно перезагрузить, добавив фиктивный аргумент строки запроса.Если ваш оператор, назначающий URL-адрес свойству src изображения, равен

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

, вы можете отобразить его как

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

Просто поймите, что при последующих загрузках он все равно будет использовать кэшированную копиюесли вы не измените аргумент строки запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...