Для теста №1 пытаюсь загрузить большие данные. Отправляю запрос, через 30 секунд получаю ответ. Всё хорошо.
Код:let start = ((new Date()).getTime() / 1000);
function load_String_From_URL(url) {
let xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
let now = ((new Date()).getTime() / 1000);
console.log((now-start).toFixed(2),"Stage:", this.readyState, this.status);
if (this.readyState == 4 && this.status == 200) {
console.log((now-start).toFixed(2),"Loaded:", url);
//success
}
};
xhttp.open("GET", url, true);
xhttp.send();
}
load_String_From_URL("http://api.antizapret.info/all.php?type=json")
А теперь тест №2 - отправляю запрос и вытаскиваю сетевой кабель из компьютера (отключение от Интернета).
Проходит час, два, 10 часов. Больше никаких сигналов от XMLHttpRequest не поступает. Ни успеха, ни ошибки, замыкание просто висит.
Как быть? А вдруг он там по 1 байту в минуту загружается? Ну, слабый Интернет в деревне у бабушки, бывает. Надо всего лишь подождать неделю. Если так, то нехорошо после 10 часов прервать по таймауту.
Есть ли надёжный способ определить, что данные не идут?