В настоящее время я работаю над страницей, которая загружает несколько изображений последовательно, используя setTimeout
и onLoad
. В основном, когда изображение заканчивает загрузку, запускается onLoad
, который запускает загрузку другого изображения по вызову setTimeout
. К сожалению, если по какой-либо причине прерывается загрузка изображения, например, последующий вызов ajax
, onload никогда не вызывается, и все изображения, которые нужно загрузить, не загружаются. Есть ли способ в javascript обнаружить эту ситуацию? Я попытался подключиться к onError
и onAbort
(на теге изображения), и ни один из них, похоже, не вызван.Обнаружение отмены загрузки изображения в Javascript
queuePhotos: function(options)
{
this.init();
this.photo_urls = options.photo_urls;
this.photo_size = options.size
this.max_width = options['max_width'];
this.max_height = options['max_height'];
this.containers = options['containers'];
yd = YAHOO.util.Dom;
photo_tags = yd.getElementsByClassName('image_stub', 'div');
for(i in photo_tags)
{
//create new image
photo = new Image();
this.queue.push({ tag: photo_tags[i], photo: photo });
}
setTimeout(photoLoader.prepareNextPhoto, 1);
},
prepareNextPhoto: function()
{
photo_tag_and_image = photoLoader.queue.shift();
if(photo_tag_and_image)
{
YAHOO.util.Event.addListener(photo_tag_and_image.photo, "load", photoLoader.appendPhoto, photo_tag_and_image, photoLoader);
photo_tag_and_image.photo.src = photoLoader.photo_urls[photo_tag_and_image.tag.id];
}
},
«Что-то еще» может быть, если вызов AJAX устанавливает новый innerHTML на элемент, содержащий изображения загрузки, или его родителей. –