Назад к вопросам
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);
})
);
});
Такой подход позволяет быстро отдавать закэшированные ресурсы и снижать нагрузку на сеть.