Здравствуйте,
Нужно было сделать отложенную загрузку изображений.
Для этого перед выводом html все src для img заменил на data-src. (php)
Что бы не грузились изначально.
Потом через Promise создавал изображения с путями из спрятанных файлов, параметр брался из data-src. Когда созданное изображение загружалось, я добавлял отсутствующий атрибут src скрытому изображению.
Вопрос в том как сделать загрузку в цепочке. То есть загрузка одного изображения и его полная загрузка вызывала бы загрузку другого изображения. Сейчас все создаётся одновременно и все файлы грузятся параллельно(я так думаю).
images_sidebar = $('#sidebar_menu_news_container img[data-src]');
$.each( images_sidebar, function( key, value ) {
lazeImageLoad(value);
});
function lazeImageLoad(image) {
let promise = new Promise((resolve, reject) => {
img = document.createElement('img');
img.src = $(image).attr('data-src');
if (img.complete) {
resolve(image);
} else {
img.addEventListener('load', resolve(image));
}
});
promise
.then(
result => {
image.src = $(image).attr('data-src');
},
error => {}
);
}