Sobes.tech
Back to questions
Middle
3

Как кэшировать запросы на фронтенде и как управлять кэшированием?

Companies where asked
TokenTech

Answer from AI

sobes.tech AI

Кэширование запросов на фронтенде помогает снизить нагрузку на сервер и ускорить загрузку данных. Основные способы:

  • HTTP-кэширование: использование заголовков Cache-Control, ETag, Last-Modified для управления кэшированием на уровне браузера и прокси.
  • Кэширование в памяти: хранение результатов запросов в переменных или state (например, в React) для повторного использования без новых запросов.
  • IndexedDB или localStorage: для долговременного хранения данных между сессиями.

Управление кэшированием включает:

  • Установку времени жизни кэша (TTL).
  • Инвалидацию кэша при изменении данных (например, по событию или версии).
  • Использование библиотек (например, React Query, SWR), которые автоматизируют кэширование и обновление данных.

Пример с использованием fetch и простого кэша в памяти:

const cache = new Map();

async function fetchWithCache(url) {
  if (cache.has(url)) {
    return cache.get(url);
  }
  const response = await fetch(url);
  const data = await response.json();
  cache.set(url, data);
  return data;
}

Такой подход прост, но требует ручного управления инвалидацией кэша.