Встречается на собеседованиях • сегодня

Как закешировать файл через Service Worker

Service Worker позволяет кэшировать файлы для оффлайн-доступа. Вот базовый пример:

javascript
self.addEventListener('install', (event) => {
  event.waitUntil(
    caches.open('my-cache-v1').then((cache) => {
      return cache.addAll([
        '/',
        '/styles/main.css',
        '/scripts/app.js',
        '/images/logo.png'
      ]);
    })
  );
});

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

text

Ключевые моменты:
1. В событии `install` мы открываем кэш и добавляем файлы
2. Версия кэша (`v1`) помогает управлять обновлениями
3. В событии `fetch` сначала проверяем кэш, и только если нет - делаем запрос

Для обновления кэша можно добавить логику в событие `activate`, удаляя старые версии.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы