Оба случая одинаковы по сложности, да и по сути тоже, гуглите lazyload. Если вкратце, то на страницу загружаются множество img с одинаковым src(фон или индикатор какой-нибудь). В кастомном атрибуте, например, my-attr каждого изображения прописывается ссылка на настоящее изображение. И как только img становится видимым на клиентском экране происходит замена src с дефолтного значения на my-attr. Но тут уже чистая математика, пояснять нечего)