Sobes.tech
Назад к вопросам
Middle
1

Как бы ты реализовал кэширование на стороне клиента?

Компании, где спрашивали
Mayflower

Ответ от нейросети

sobes.tech AI

Кэширование на стороне клиента можно реализовать несколькими способами:

  • LocalStorage / SessionStorage — для хранения данных между сессиями или в рамках сессии.
  • IndexedDB — для более сложных структур данных и больших объемов.
  • Service Workers — для перехвата сетевых запросов и кеширования ответов, что позволяет работать офлайн и ускоряет загрузку.
  • HTTP Cache-Control заголовки — браузер сам кэширует ресурсы согласно этим заголовкам.

Пример использования Service Worker для кэширования:

self.addEventListener('install', event => {
  event.waitUntil(
    caches.open('v1').then(cache => {
      return cache.addAll([
        '/',
        '/styles.css',
        '/script.js',
        '/image.png'
      ]);
    })
  );
});

self.addEventListener('fetch', event => {
  event.respondWith(
    caches.match(event.request).then(response => {
      return response || fetch(event.request);
    })
  );
});

Такой подход позволяет быстро отдавать закэшированные ресурсы и снижать нагрузку на сеть.