Baseline Widely available
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 ããµãã¼ããã¦ãã¾ããã
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