Насколько мне известно, нет способа остановить или приостановить загрузку изображения с помощью JavaScript.Тем не менее, аккуратным способом управления порядком загрузки изображений будет объединение их событий загрузки.Вот пример (с использованием jQuery).
В этом примере у меня есть массив imgQueue
, который я использую в качестве очереди, и функция loadNextImage
, которая захватывает изображение из очереди для загрузки и вызывает loadNextImage
, когда изображение завершает загрузку.
function loadNextImage() {
if (imgQueue.length > 0) {
var imgN = new Image();
imgN.src = imgQueue.shift();
$(imgN).load(function(){
$("#main").append(imgN);
loadNextImage();
});
}
}
Чтобы изменить порядок загрузки изображений, вы буквально просто переместите их вперед в imgQueue
, например, если бы я хотел переместить изображение 5 вперед:
imgQueue.unshift(imgQueue.splice(4,1));
Это не идеально, например, если изображения не являются большими, возможно, имеет смысл загружать их в группы.Кроме того, поскольку loadNextImage
управляет очередью, которую вы не можете отслеживать изображения только по их первоначальному индексу, вам нужно сделать что-то необычное, например, сохранить их как хеши, чтобы вы могли найти их позже:
var imgHashQueue = [
{name: "name", url = "url"},
...
]