JavaScript XMLHttpRequest.timeout — таймаут запиту
Властивість timeout задає, скільки чекати на відповідь сервера — у мілісекундах. Після цього запит обривається.
Загальний опис
Без таймауту запит може висіти дуже довго — доки не здасться операційна система. Користувач за цей час просто вирішить, що сайт зламався.
При спрацюванні викликається окрема подія — ontimeout, а не onerror. Обробники різні, і це варто пам'ятати.
Значення 0 (за замовчуванням) означає «чекати вічно».
Це, до речі, одна з причин, чому XHR досі живий: у fetch вбудованого таймауту немає — там потрібен AbortSignal.timeout().
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| timeout | 29+ | 12+ | 7+ | 17+ | 12+ | 10+ |
| Переглядач | ||||
|---|---|---|---|---|
| timeout | 4.4+ | yes | yes | 7+ |
Приклади
+ запропонувати свій приклад у пісочниці
Запит, що не висітиме вічно.
const xhr = new XMLHttpRequest();
xhr.timeout = 5000; // 5 секунд
xhr.ontimeout = () => {
// окрема подія — НЕ onerror
console.error('Сервер не відповів за 5 секунд');
};
xhr.onload = () => console.log('Готово');
xhr.open('GET', '/api/slow');
xhr.send();
// у fetch це робиться так:
// fetch('/api/slow', { signal: AbortSignal.timeout(5000) });
Коментарі
Коментарів ще немає — будьте першим!