Baseline Widely available
Experimental: ì´ ê¸°ë¥ì ì¤íì ì¸ ê¸°ë¥ì
ëë¤.
íë¡ëì
íê²½ìì ì¬ì©í기 ì ì ë¸ë¼ì°ì í¸íì± í를 주ì ê¹ê² íì¸íì¸ì.
Cache
ì¸í°íì´ì¤ë ServiceWorker
ì ìëª
주기ì ì¼ë¶ë¡ ìºì ë Request
ì Response
를 ëíë
ëë¤.
ëë©ì¸ì ì¬ë¬ê°ì ì´ë¦ì´ ì§ì ë Cache
ê°ì²´ë¥¼ ê°ì§ ì ìì¼ë©° ê·¸ ê°ì²´ë¤ì ServiceWorker
ê° ìì í ì ì´í©ëë¤.ServiceWorker
ì¤í¬ë¦½í¸ê° Cache
ì
ë°ì´í¸ë¥¼ ì´ë»ê² 컨í¸ë¡¤ í ì§ì ëí´ì 구íí´ì¼ í©ëë¤. ëª
ìì ì¼ë¡ ìì²íì§ ìì¼ë©´ Cache
í목ë¤ì ì
ë°ì´í¸ ëì§ ììµëë¤. ìì ëì§ ìì¼ë©´ ë§ë£ëì§ ììµëë¤. CacheStorage.open(cacheName)
ì ì¬ì©íì¬ í¹ì ì´ë¦ì¼ë¡ ì§ì ë Cache
ê°ì²´ë¥¼ ë¡ëíê³ Cache
ë©ìë를 í¸ì¶íì¬ ìºì를 ì ì§ ê´ë¦¬í©ëë¤.
ëí ìºì í목ì ì 기ì ì¼ë¡ ìì í´ì¼ í©ëë¤. ê°ê°ì ë¸ë¼ì°ì ë ServiceWorker
ê° ì¬ì©í ì ìë ìºì ì ì¥ìì ìì ëí´ì ì íì ì격íê² ëê³ ììµëë¤. ë¸ë¼ì°ì ë ëì¤í¬ ê³µê°ì ê´ë¦¬í기 ìí´ì ìµì ì ë¤íì§ë§ ì본ì ëí ìºì ì ì¥ì를 ìì í ì ììµëë¤. ë¸ë¼ì°ì ë ì¼ë°ì ì¼ë¡ ì본ì ëí 모ë ë°ì´í°ë¥¼ ìì íê±°ë ì본ì ëí 모ë ë°ì´í°ë¥¼ ìì íì§ ìì ê²ì
ëë¤. ì´ë¦ì§ì´ì§ í¹ì ìºì ë²ì ì íì¸íê³ ìì íê² ìëí ì ìë ServiceWorker
ë²ì ììë§ ìºì를 ì¬ì©íììì¤. ìºì ìì ì ëí ìì¸í ë´ì©ì Deleting old cachesì ì°¸ê³ íì¸ì.
ì°¸ê³ : ì´ê¸° ìºì 구í(Blink ë° Gecko)ì ìëµì´ ìì í 기ë¡ë ë Cache.add
, Cache.addAll
, ê·¸ë¦¬ê³ Cache.put
ë¡ íì¸ ë©ëë¤. ë³´ë¤ ìµê·¼ ì¬ì ë²ì ììì ìµì ì¸ì´ë¤ì ìëµì´ ì¬ì í ì¤í¸ë¦¬ë°ì´ ëë ê²½ì°ìë í´ë¹ ë´ì©ì´ ë°ì´í°ë² ì´ì¤ì 기ë¡ëë ì¦ì ë¸ë¼ì°ì ê° íì¸í ì ììµëë¤.
ì°¸ê³ :
Cache.put
,Cache.add
, 그리ê³Cache.addAll
ì ì¤ì§GET
ìì²ë¤ë§ cacheë¡ ì ì¥ë©ëë¤.
ì°¸ê³ : ìºì APIë HTTP ìºì í¤ë를 ë°ë¥´ì§ ììµëë¤.
ë©ìëCache.match(request, options)
Cache
ê°ì²´ì 첫 ë²ì§¸ ì¼ì¹íë ìì²ê³¼ ê´ë ¨ë ìëµì¼ë¡ íì¸ëë Promise
를 ë°íí©ëë¤.
Cache.matchAll(request, options)
Cache
ê°ì²´ìì ì¼ì¹íë 모ë ìì²ì ë°°ì´ë¡ í´ìëë Promise
를 ë°íí©ëë¤.
Cache.add(request)
URLì ê°ì ¸ ìì ì¶ì¶í´ì ê²°ê³¼ ê°ì²´ë¥¼ ì§ì ë ìºìì ì¶ê°í©ëë¤. ì´ë fetch()를 í¸ì¶ í ë¤ì Cache.put()ì ì¬ì©íì¬ ìºìì 결과를 ì¶ê°íë ê²ê³¼ ë§¤ì° ì ì¬í©ëë¤.
Cache.addAll(requests)
URL ë°°ì´ì ê°ì ¸ ìì ì¶ì¶íê³ ê²°ê³¼ ìëµ ê°ì²´ë¥¼ ì§ì ë ìºìì ì¶ê°í©ëë¤.
Cache.put(request, response)
ìì²ê³¼ ìëµì 모ë ê°ì ¸ ìì ì§ì ë ìºìì ì¶ê°í©ëë¤.
Cache.delete(request, options)
í´ë¹ í¤ê° requestì¸ Cache
를 ì°¾ê³ Cache
를 ìì íê³ true
íì ì¸ Promise
를 리í´í©ëë¤. Cache
íëª©ì´ ìì¼ë©´ false
를 ë°íí©ëë¤.
Cache.keys(request, options)
ì´ ì½ëë service worker selective caching sample ìì ê°ì ¸ììµëë¤. (see selective caching live). ì´ ì½ëëCacheStorage.open(cacheName)
ì ì¬ì©íì¬ font/
ë¡ ììíë Content-Type
headerë¡ Cache
를 ì½ëë¤.
ê·¸ë° ë¤ì ì½ëë Cache.match(request, options)
를 ì¬ì©íì¬ ìºìì ì´ë¯¸ ì¼ì¹íë ê¸ê¼´ì´ ìëì§ íì¸í í ì¼ì¹íë ê¸ê¼´ì ë°íí©ëë¤. ì¼ì¹íë ê¸ê¼´ì´ ìì¼ë©´ ì½ëë ë¤í¸ìí¬ìì ê¸ê¼´ì ê°ì ¸ì¤ê³ Cache.put(request, response)
ì ì¬ì©íì¬ ê°ì ¸ì¨ 리ìì¤ë¥¼ ìºìí©ëë¤.
ì´ ì½ëë fetch()
ì°ì°ìì ë°ìí ìì¸ë¥¼ ì²ë¦¬í©ëë¤. HTTPì¤ë¥ ìëµ(ì : 404)ì ìì¸ë¥¼ ë°ììí¤ì§ ììµëë¤. ì ì í ì¤ë¥ ì½ëê°ìë ì¼ë° ìëµ ê°ì²´ë¥¼ 리í´í©ëë¤.
ëí ì½ë ì¤ëí«ì {domxref ( "ServiceWorker")}}ê° ì¬ì©íë ìºì ë²ì ê´ë¦¬ë¥¼ ìí ëª¨ë² ì¬ë¡ë¥¼ ë³´ì¬ì¤ëë¤. ì´ ìììë ìºìê° íë ë°ì ìì§ë§ ëì¼í ì ê·¼ë²ì ì¬ë¬ ìºìì ì¬ì©í ì ììµëë¤. ìºìì ë¨ì¶ ìë³ì를 í¹ì ë²ì ì ìºì ì´ë¦ì 매íí©ëë¤. ëí ì´ ì½ëë CURRENT_CACHES
ì ì´ë¦ì´ ì§ì ëì§ ìì 모ë ìºì를 ìì í©ëë¤.
ì°¸ê³ : í¬ë¡¬ìì, chrome://inspect/#service-workers 를 방문íì¬ "inspect" 를 í´ë¦íì¬ service-worker.js ì¤í¬ë¦½í¸ê° ìíì¤ì¸ ë¤ìí ìì ì ëí ë¡ê¹ 구문ì íì¸í©ëë¤.
var CACHE_VERSION = 1;
// Shorthand identifier mapped to specific versioned cache.
var CURRENT_CACHES = {
font: "font-cache-v" + CACHE_VERSION,
};
self.addEventListener("activate", function (event) {
var expectedCacheNames = Object.keys(CURRENT_CACHES).map(function (key) {
return CURRENT_CACHES[key];
});
// Active worker won't be treated as activated until promise resolves successfully.
event.waitUntil(
caches.keys().then(function (cacheNames) {
return Promise.all(
cacheNames.map(function (cacheName) {
if (expectedCacheNames.indexOf(cacheName) == -1) {
console.log("Deleting out of date cache:", cacheName);
return caches.delete(cacheName);
}
}),
);
}),
);
});
self.addEventListener("fetch", function (event) {
console.log("Handling fetch event for", event.request.url);
event.respondWith(
// Opens Cache objects that start with 'font'.
caches.open(CURRENT_CACHES["font"]).then(function (cache) {
return cache
.match(event.request)
.then(function (response) {
if (response) {
console.log(" Found response in cache:", response);
return response;
}
})
.catch(function (error) {
// Handles exceptions that arise from match() or fetch().
console.error(" Error in fetch handler:", error);
throw error;
});
}),
);
});
ëª
ì¸ ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4