PageSourceSearch

https://juiceon24.com/sw.js

js juiceon24.com collected 2026-10-03 00:06:48 UTC 1,860 bytes, 53 lines download raw bytes

1// Service Worker - 이미지 캐싱 최적화
2const CACHE_NAME = 'juiceon-cache-v1';
3const IMAGE_CACHE_TIME = 30 * 24 * 60 * 60 * 1000; // 30일
4
5self.addEventListener('install', (event) => {
6  self.skipWaiting();
7});
8
9self.addEventListener('activate', (event) => {
10  event.waitUntil(clients.claim());
11});
12
13self.addEventListener('fetch', (event) => {
14  const url = new URL(event.request.url);
15  
16  // cafe24 이미지만 캐싱
17  if (url.hostname.includes('cafe24img.com') || url.hostname.includes('echosting.cafe24.com')) {
18    event.respondWith(
19      caches.open(CACHE_NAME).then((cache) => {
20        return cache.match(event.request).then((cachedResponse) => {
21          // 캐시가 있으면 반환
22          if (cachedResponse) {
23            const cachedDate = cachedResponse.headers.get('sw-cache-date');
24            if (cachedDate) {
25              const cacheAge = Date.now() - parseInt(cachedDate);
26              if (cacheAge < IMAGE_CACHE_TIME) {
27                return cachedResponse;
28              }
29            }
30          }
31          
32          // 네트워크에서 가져와서 캐시
33          return fetch(event.request).then((response) => {
34            if (response.status === 200) {
35              const responseToCache = response.clone();
36              const headers = new Headers(responseToCache.headers);
37              headers.append('sw-cache-date', Date.now().toString());
38              
39              const cachedResponse = new Response(responseToCache.body, {
40                status: responseToCache.status,
41                statusText: responseToCache.statusText,
42                headers: headers
43              });
44              
45              cache.put(event.request, cachedResponse);
46            }
47            return response;
48          });
49        });
50      })
51    );
52  }
53});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.