Ответ
Graceful shutdown — это корректное завершение работы приложения, при котором оно успевает выполнить все необходимые действия перед остановкой (закрыть соединения, сохранить данные, завершить процессы). В контексте фронтенда это особенно важно для:
- WebSocket — закрытие соединения
- API-запросы — отмена pending-запросов
- Таймеры — очистка интервалов/таймаутов
- События — отписка от слушателей
Пример с React:
useEffect(() => {
const controller = new AbortController();
fetch('/api', { signal: controller.signal })
.then(handleData)
.catch(e => {
if (e.name !== 'AbortError') console.error(e);
});
return () => {
controller.abort(); // Отмена запроса при размонтировании
clearInterval(timerId);
window.removeEventListener('resize', handler);
};
}, []);