ExtendableEvent
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æ.
ExtendableEvent ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ããµã¼ãã¹ã¯ã¼ã«ã¼ã®ã©ã¤ããµã¤ã¯ã«ã®ä¸é¨ã¨ãã¦ãã°ãã¼ãã«ã¹ã³ã¼ãã«é
ä¿¡ããã install ããã³ activate ã¤ãã³ãã®åç¶æéãå»¶é·ãã¾ããããã«ããããã¼ã¿ãã¼ã¹ã¹ãã¼ããã¢ããã°ã¬ã¼ãããã¦å¤ããã£ãã·ã¥ã¨ã³ããªã¼ãåé¤ãããã¾ã§ãæ©è½ã¤ãã³ãï¼FetchEvent ãªã©ï¼ãéåºãããªããªãã¾ãã
waitUntil() ã ExtendableEvent ãã³ãã©ã¼ã®å¤ã§å¼ã³åºãããå ´åããã©ã¦ã¶ã¼ã¯ InvalidStateError ä¾å¤ãçºçããã¾ãã ã¾ããè¤æ°ã®å¼ã³åºããç©ã¿éãªãããã®çµæã®ãããã¹ãåç¶æéå»¶é·ãããã¹ã®ãªã¹ãã«è¿½å ããããã¨ã«ã注æãã¦ãã ããã
ã¡ã¢: ä¸è¨ã®æ®µè½ã§èª¬æããæ¯ãèãã¯ãFirefox 43 ã§ä¿®æ£ããã¾ããï¼Firefox ãã° 1180274 ãåç §ï¼ã
ãã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ã Event ã¤ã³ã¿ã¼ãã§ã¤ã¹ãç¶æ¿ãã¦ãã¾ãã
ã¡ã¢:
ãã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ãã°ãã¼ãã«ã¹ã³ã¼ãã ServiceWorkerGlobalScope ã®å ´åã«ã®ã¿ä½¿ç¨ã§ãã¾ãã Window ã¾ãã¯å¥ã®ç¨®é¡ã®ã¯ã¼ã«ã¼ã®ã¹ã³ã¼ãã®å ´åã¯ä½¿ç¨ã§ãã¾ããã
ã³ã³ã¹ãã©ã¯ã¿ã¼
ExtendableEvent()-
æ°ãã
ExtendableEventãªãã¸ã§ã¯ãã使ãã¾ãã
ããããã£
ç¹å®ã®ããããã£ãå®è£
ãã¦ãã¾ãããã親ã§ãã Event ããããããã£ãç¶æ¿ãã¦ãã¾ãã
ã¡ã½ãã
親ã§ãã Event ããã¡ã½ãããç¶æ¿ãã¦ãã¾ãã
ExtendableEvent.waitUntil()-
ã¤ãã³ãã®åç¶æéãå»¶é·ãã¾ãã ããã¯ãã¤ã³ã¹ãã¼ã«ä¸ (
installing) ã®ã¯ã¼ã«ã¼ã®installã¤ãã³ããã³ãã©ã¼ ã¨ãã¢ã¯ãã£ã (active) ã¯ã¼ã«ã¼ã®activateã¤ãã³ããã³ãã©ã¼ ã§å¼ã³åºãããã®ãã®ã§ãã
ä¾
ãã®ã³ã¼ãã¹ããããã¯ããµã¼ãã¹ã¯ã¼ã«ã¼ã®ããªãã§ããã®ä¾ããã®ãã®ã§ãï¼ããªãã§ããã®ä¾ãã©ã¤ãã§è¦ãï¼ã ã³ã¼ã㯠ServiceWorkerGlobalScope.install_event ã§ ExtendableEvent.waitUntil() ãå¼ã³åºããã¤ã³ã¹ãã¼ã«ä¸ï¼ServiceWorkerRegistration.installingï¼ã®ã¯ã¼ã«ã¼ãã¤ã³ã¹ãã¼ã«æ¸ã¿ï¼installedï¼ã¨ãã¦æ±ãããã®ããæ¸¡ããã Promise ãæ£å¸¸ã«è§£æ±ºãããã¾ã§é
ããã¾ãã Promise ã¯ããã¹ã¦ã®ãªã½ã¼ã¹ããã§ããããã¦ãã£ãã·ã¥ãããã¨ããã¾ãã¯ä¾å¤ãçºçããã¨ãã«è§£æ±ºãã¾ãã
ã³ã¼ãã¹ããããã¯ããµã¼ãã¹ã¯ã¼ã«ã¼ã使ç¨ãããã£ãã·ã¥ã®ãã¼ã¸ã§ã³ç®¡çã®ãã¹ããã©ã¯ãã£ã¹ã示ãã¦ãã¾ãã ãã®ä¾ã§ã¯ãã£ãã·ã¥ã¯ 1 ã¤ããããã¾ããããåãã¢ããã¼ããè¤æ°ã®ãã£ãã·ã¥ã«ä½¿ç¨ã§ãã¾ãã ãã£ãã·ã¥ã®ä¸æ¬æå®èå¥åãç¹å®ã®ãã¼ã¸ã§ã³ç®¡çããããã£ãã·ã¥åã«ããããã¾ãã
ã¡ã¢: Chrome ã§ã¯ããã°æã¯ãchrome://serviceworker-internals ãä»ãã¦ã¢ã¯ã»ã¹ãããé¢é£ãµã¼ãã¹ã¯ã¼ã«ã¼ã® "Inspect" ã¤ã³ã¿ã¼ãã§ã¤ã¹ãä»ãã¦è¡¨ç¤ºããã¾ãã
const CACHE_VERSION = 1;
const CURRENT_CACHES = {
prefetch: `prefetch-cache-v${CACHE_VERSION}`,
};
self.addEventListener("install", (event) => {
const urlsToPrefetch = [
"./static/pre_fetched.txt",
"./static/pre_fetched.html",
"https://www.chromium.org/_/rsrc/1302286216006/config/customLogo.gif",
];
console.log(
"Handling install event. Resources to pre-fetch:",
urlsToPrefetch,
);
event.waitUntil(
caches
.open(CURRENT_CACHES["prefetch"])
.then((cache) => {
return cache
.addAll(
urlsToPrefetch.map((urlToPrefetch) => {
return new Request(urlToPrefetch, { mode: "no-cors" });
}),
)
.then(() => {
console.log("ãã¹ã¦ã®ãªã½ã¼ã¹ããã§ãããããã£ãã·ã¥ãã¾ããã");
});
})
.catch((error) => {
console.error("ããªãã§ããã«å¤±æ:", error);
}),
);
});
ã¡ã¢:
ãªã½ã¼ã¹ããã§ããããã¨ãããªã½ã¼ã¹ã CORS ããµãã¼ããã¦ããªããµã¼ãã¼ããæä¾ãããå¯è½æ§ãããå ´åã¯ã{mode: 'no-cors'} ã使ç¨ãããã¨ãé常ã«éè¦ã§ãã ãã®ä¾ã§ã¯ã www.chromium.org 㯠CORS ããµãã¼ããã¦ãã¾ããã
仿§æ¸
| Specification |
|---|
| Service Workers Nightly > # extendableevent-interface > |