FetchEvent
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2018å¹´4æ.
* Some parts of this feature may have varying levels of support.
ãã㯠fetch ã¤ãã³ãç¨ã®ã¤ãã³ãåã§ããµã¼ãã¹ã¯ã¼ã«ã¼ã®ã°ãã¼ãã«ã¹ã³ã¼ãã«é
ä¿¡ããã¾ããããã«ã¯ããªã¯ã¨ã¹ãããåãæãã©ãã¬ã¹ãã³ã¹ãæ±ãã®ãã¨ãã£ãããã§ããã«é¢ããæ
å ±ãå«ã¾ãã¦ãã¾ããããã¯ããã®ãã§ããã¸ã®ã¬ã¹ãã³ã¹ãæä¾ãã event.respondWith() ã¡ã½ãããæä¾ãã¾ãã
ã³ã³ã¹ãã©ã¯ã¿ã¼
FetchEvent()-
æ°ãã
FetchEventãªãã¸ã§ã¯ãã使ãã¾ãã ãã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯é常ã¯ä½¿ç¨ãã¾ããã ãã©ã¦ã¶ã¼ã¯ãã®ãªãã¸ã§ã¯ãèªä½ã使ãã¦fetchã¤ãã³ãã®ã³ã¼ã«ããã¯ã«æä¾ãã¾ãã
ããããã£
ç¥å
ã§ãã Event ããããããã£ãç¶æ¿ãã¦ãã¾ãã
FetchEvent.clientIdèªåå°ç¨-
ãã§ãããéå§ããåä¸ãªãªã¸ã³ã®
ã¯ã©ã¤ã¢ã³ãã®idã§ãã FetchEvent.preloadResponseèªåå°ç¨-
Responseã®ããã®Promiseãã¾ãã¯ãã®ãã§ãããããã²ã¼ã·ã§ã³ã§ãªãå ´åããããã²ã¼ã·ã§ã³ã®å èªã¿ãæå¹ã«ãªã£ã¦ããªãå ´åã¯undefinedã§ãã FetchEvent.replacesClientIdèªåå°ç¨-
ãã¼ã¸ã®ããã²ã¼ã·ã§ã³ä¸ã«ç½®ãæãããã
ã¯ã©ã¤ã¢ã³ãã®idã§ãã FetchEvent.resultingClientIdèªåå°ç¨-
ãã¼ã¸ã®ããã²ã¼ã·ã§ã³ä¸ã«åã®ã¯ã©ã¤ã¢ã³ããç½®ãæãã
ã¯ã©ã¤ã¢ã³ãã®idã§ãã FetchEvent.requestèªåå°ç¨-
ãã©ã¦ã¶ã¼ãè¡ããã¨ãã¦ãã
Requestã§ãã
ã¡ã½ãã
親ã§ãã ExtendableEvent ããã¡ã½ãããç¶æ¿ãã¦ãã¾ãã
FetchEvent.respondWith()-
ãã©ã¦ã¶ã¼æ¢å®ã®ãã§ããå¦çãææ¢ããèªèº«ã®ã¬ã¹ãã³ã¹ï¼ã®ãããã¹ï¼ãæä¾ãã¾ãã
ExtendableEvent.waitUntil()-
ã¤ãã³ãã®åç¶æéãå»¶é·ãã¾ãã ã¹ããªã¼ãã³ã°ããã£ãã·ã¥ãªã©ãã¬ã¹ãã³ã¹ã®è¿å´ãè¶ ãã¦å»¶é·ããã¿ã¹ã¯ããã©ã¦ã¶ã¼ã«éç¥ããããã«ä½¿ç¨ãã¾ãã
ä¾
ãã® fetch ã¤ãã³ãã¯ã GET 以å¤ã®ãªã¯ã¨ã¹ãã«å¯¾ãã¦ãã©ã¦ã¶ã¼æ¢å®ã®ãã®ã使ç¨ãã¾ãã GET ãªã¯ã¨ã¹ãã«å¯¾ãã¦ã¯ãã£ãã·ã¥ããä¸è´ãããã®ãè¿ããã¨ãããªãå ´åã¯ãããã¯ã¼ã¯ããèªã¿åãã¾ãããã£ãã·ã¥ã«ä¸è´ãããã®ãè¦ã¤ãã£ãå ´åãæ¬¡åããã«ãã£ãã·ã¥ãéåæã«æ´æ°ãã¾ãã
self.addEventListener("fetch", (event) => {
// GET 以å¤ã®ãªã¯ã¨ã¹ãã§ã¯ããã©ã¦ã¶ã¼ã«æ¢å®ã®ãã¨ãããã
if (event.request.method !== "GET") return;
// æ¢å®ã®ãã¨ãè¡ãããèªåèªèº«ã®ãªã¯ã¨ã¹ããæ±ã
event.respondWith(
(async () => {
// ãã£ãã·ã¥ããã¬ã¹ãã³ã¹ã®åå¾ã試ã¿ã
const cache = await caches.open("dynamic-v1");
const cachedResponse = await cache.match(event.request);
if (cachedResponse) {
// ãã£ãã·ã¥ã«ä¸è´ãããã®ãè¦ã¤ãã£ãå ´åã¯è¿å´ãã
// ããã¯ã°ã©ã¦ã³ãã§ãã£ãã·ã¥å
ã®é
ç®ãæ´æ°
event.waitUntil(cache.add(event.request));
return cachedResponse;
}
// ãã£ãã·ã¥ã«ä¸è´ãããã®ããªããã°ããããã¯ã¼ã¯ã®ãã®ã使ç¨
return fetch(event.request);
})(),
);
});
仿§æ¸
| Specification |
|---|
| Service Workers Nightly > # fetchevent-interface > |