Progressive jpeg, в нем сначала отображается изображение в плохом качестве, затем в хорошем, есть плагины для вебсерверов, которые делают это на лету, затем включить spdy, использовать один домен/сабдомен для статики.
Есть такой вариант:
img src="grey.png" data-full="big-image" width=100 height=100
images = document.getElementsByTagName('img')
for (image of images) {
if (image.dataFull) {
image.src = image.dataFull
// для тех у кого на мобильном интернете сорвалась загрузка
image.onerror = () => image.src = image.dataFull
}
}
Но оно нормально не будет работать, браузеры сами умеют неплохо в оптимизацию, и она например норм работает при плохом конекте, но при этом я не видел кастомных имплемантаций, которые адекватно работают на плохом интернете. Да и маловероятно что они будут, потому что нет нормально api которое определяет есть сеть или нет, чтобы заморозить загрузку и начать ее снова, когда она появится. Далее надо разбираться с тем сколько коннектов может быть к серверу одновременно открытых и как оптимизировать время, которое нужно на соединение с сервером.