в цикле можно использовать команду continue для перехода к следующей итерации (не выполняем далее действия с текущими значениями счетчиков, а переходим к следующим значениям)
Например:
var index = 0,
id = 0;
while (i < 4) {
i += 1;
while (j > 4) {
j +=1;
if (i == 0 && j==0) {
continue;
} else {
let image = new Image;
image.src = "../img/designers/" + index + '.' + id + ".jpg";
}
}
}
Можно использовать как в while, так и в for:
https://learn.javascript.ru/while-for
Если закономерность отсутствующих фото выявить нельзя, то можно получить ответ сервера таким образом:
var xhr = new XMLHttpRequest();
xhr.open('GET', '/ajax-xmlhttprequest', true);
xhr.send();
xhr.onreadystatechange = function() {
if (this.readyState != 4) return;
// по окончании запроса доступны:
// status, statusText
// responseText, responseXML (при content-type: text/xml)
if (this.status != 200) {
// обработать ошибку
alert( 'ошибка: ' + (this.status ? this.statusText : 'запрос не удался') );
return;
} else {
alert('ответ 200! ссылка рабочая');
}
// получить результат из this.responseText или this.responseXML
}
Подробнее тут:
https://learn.javascript.ru/ajax-xmlhttprequest