JavaScript XMLHttpRequest.timeout — таймаут запиту
Властивість timeout задає, скільки чекати на відповідь сервера — у мілісекундах. Після цього запит обривається.
Загальний опис
Без таймауту запит може висіти дуже довго — доки не здасться операційна система. Користувач за цей час просто вирішить, що сайт зламався.
При спрацюванні викликається окрема подія — ontimeout, а не onerror. Обробники різні, і це варто пам'ятати.
Значення 0 (за замовчуванням) означає «чекати вічно».
Це, до речі, одна з причин, чому XHR досі живий: у fetch вбудованого таймауту немає — там потрібен AbortSignal.timeout().
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 29 | 12 | 7 | 17 | 12 | 8 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 29 | 14 | 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) });
Коментарі
Коментарів ще немає — будьте першим!