Вы можете загрузить изображение в невидимый тег <img>
и использовать событие «load» для обновления видимого тега.
$('#hiddenImage').attr('src', newImageUrl).load(function() {
$('#realImage').attr('src', newImageUrl);
});
Таким образом, вы знаете, что он находится в кэше, поэтому обновление видимого изображения должно быть довольно быстрым.
Если вы перезагружаете целый кусок материала, у вас будут проблемы, потому что действие «загрузить» обновит страницу, а затем браузер запустит транзакцию HTTP, чтобы удовлетворить неявный запрос "GET" в теге <img>
. Поэтому вы можете сделать следующее:
- Загрузите весь блоб в скрытый
<div>
- Иметь обработчик live (), ожидающий события "load" из тега изображения в скрытом div;
- Реагируйте на событие «load», перемещая поддерево DOM из скрытого div в место, где вы действительно хотите.