JavaScript
Запросы к API
Загружаем данные с fetch и обрабатываем ошибки HTTP и сети.
Проверьте статус ответа
fetch() возвращает объект ответа даже при HTTP 404 или 500. Перед чтением JSON проверьте response.ok.
async function loadProjects(signal) {
const response = await fetch("/api/projects", { signal });
if (!response.ok) {
throw new Error("HTTP " + response.status);
}
return response.json();
}Покажите состояние загрузки
Интерфейсу нужны состояния загрузки, результата, пустого списка и ошибки. При ошибке оставьте понятное сообщение и возможность повторить запрос.
Отменяйте устаревшие запросы
Если пользователь быстро меняет фильтры, старый запрос может завершиться позже нового. Перед следующим запросом отмените предыдущий через AbortController и передайте signal в fetch().
const controller = new AbortController();
loadProjects(controller.signal)
.then(renderProjects)
.catch(error => {
if (error.name !== "AbortError") showError(error);
});
// Например, при уходе со страницы:
controller.abort();