Baseline Widely available
match()
㯠Cache
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¡ã½ããã§ãCache
ãªãã¸ã§ã¯ãã§æåã«ä¸è´ãããªã¯ã¨ã¹ãã«é¢é£ä»ãããã Response
ã«è§£æ±ºããã Promise
ãè¿ãã¾ããä¸è´ãããã®ãè¦ã¤ãããªãå ´åãPromise
㯠undefined
ã«è§£æ±ºããã¾ãã
match(request)
match(request, options)
弿°
request
Cache
å
ã§ã¬ã¹ãã³ã¹ãè¦ã¤ãããã¨ãã¦ãã Request
ã ããã¯ãRequest
ãªãã¸ã§ã¯ãã¾ã㯠URL ã§ãã
options
çç¥å¯
match
æä½ã®ãªãã·ã§ã³ãè¨å®ãããªãã¸ã§ã¯ãã 使ç¨å¯è½ãªãªãã·ã§ã³ã¯æ¬¡ã®ã¨ããã§ãã
ignoreSearch
è«çå¤ã§ãURL ã®ã¯ã¨ãªã¼æååãç¡è¦ãããã©ãããæå®ãã¾ãã ä¾ãã°ãtrue
ã«è¨å®ããã¨ãhttp://foo.com/?value=bar
ã® ?value=bar
ã®é¨åã¯ãç
§åã®å®è¡æã«ç¡è¦ããã¾ãã æ¢å®å¤ã¯ false
ã§ãã
ignoreMethod
è«çå¤ã§ãtrue
ã«è¨å®ããã¨ãç
§åæä½ã Request
ã® http
ã¡ã½ãããæ¤è¨¼ããªãããã«ãã¾ãï¼é常ãGET
ããã³ HEAD
ã®ã¿ã許å¯ããã¾ãï¼ã æ¢å®å¤ã¯ false
ã§ãã
ignoreVary
è«çå¤ã§ãtrue
ã«è¨å®ããã¨ãVARY
ãããã¼ã®ç
§åãå®è¡ããªãããã«ç
§åæä½ã«æç¤ºãã¾ãã ã¤ã¾ããURL ãä¸è´ããå ´åãResponse
ãªãã¸ã§ã¯ãã« VARY
ãããã¼ããããã©ããã«é¢ä¿ãªãä¸è´ãã¾ãã æ¢å®å¤ã¯ false
ã§ãã
ãªã¯ã¨ã¹ãã«ä¸è´ããæåã® Response
ã«è§£æ±ºããä¸è´ãããã®ãè¦ã¤ãããªãå ´å㯠undefined
ã«è§£æ±ºãã Promise
ã§ãã
ã¡ã¢: Cache.match()
ã¯ãä¸è´ãããã¹ã¦ã®ã¬ã¹ãã³ã¹ã®é
åã§è§£æ±ºããã®ã§ã¯ãªããæåã«ä¸è´ããã¬ã¹ãã³ã¹ã®ã¿ï¼ã¤ã¾ããresponse[0]
ï¼ã§è§£æ±ºãããã¨ãé¤ãã¦ãåºæ¬çã« Cache.matchAll()
ã¨åãã§ãã
ãã®ä¾ã¯ãã«ã¹ã¿ã ãªãã©ã¤ã³ãã¼ã¸ã®ä¾ï¼ã©ã¤ããã¢ï¼ããã®å¼ç¨ã§ãã ãªã¯ã¨ã¹ãã失æããå ´åããã£ãã·ã¥ã使ç¨ãã¦é¸æãããã¼ã¿ãæä¾ãã¾ãã catch()
å¥ã¯ãfetch()
ã®å¼ã³åºããä¾å¤ãã¹ãã¼ããã¨ãã«ããªã¬ã¼ããã¾ãã catch()
å¥ã®å
é¨ã§ã¯ã match()
ã使ç¨ãã¦æ£ããã¬ã¹ãã³ã¹ãè¿ãã¾ãã
ãã®ä¾ã§ã¯ãHTTP ã® GET ã¡ã½ããã§åå¾ããã HTML ææ¸ã®ã¿ããã£ãã·ã¥ããã¾ãã if ()
æ¡ä»¶ã false ã®å ´åããã®ãã§ãããã³ãã©ã¼ã¯ãªã¯ã¨ã¹ãã«ä»å
¥ãã¾ãããä»ã®ãã§ãããã³ãã©ã¼ãç»é²ããã¦ããå ´åãããã㯠event.respondWith()
ãå¼ã³åºãæ©ä¼ãå¾ã¾ãã ãã§ãããã³ãã©ã¼ã event.respondWith()
ãå¼ã³åºããªãã£ãå ´åããªã¯ã¨ã¹ãã¯ãã©ã¦ã¶ã¼ã«ãã£ã¦å¦çããããµã¼ãã¹ã¯ã¼ã«ã¼ãé¢ä¸ãã¦ããªããã®ããã«å¦çããã¾ãã fetch()
ã 4xx ã¾ã㯠5xx ã®ç¯å²ã®ã¬ã¹ãã³ã¹ã³ã¼ãã§æå¹ãª HTTP ã¬ã¹ãã³ã¹ãè¿ãå ´åãcatch()
ã¯å¼ã³åºããã¾ããã
self.addEventListener("fetch", (event) => {
// ããã HTML ææ¸ã«å¯¾ãã GET ãªã¯ã¨ã¹ãã§ããå ´åã®ã¿ãevent.respondWith() ãå¼ã³åºãã¾ãã
if (
event.request.method === "GET" &&
event.request.headers.get("accept").includes("text/html")
) {
console.log("ãã§ããã¤ãã³ãã®å¦ç: ", event.request.url);
event.respondWith(
fetch(event.request).catch((e) => {
console.error("ãã§ãã失æã代ããã«ãªãã©ã¤ã³ãã¼ã¸ã«æ»ãã¾ãã", e);
return caches
.open(OFFLINE_CACHE)
.then((cache) => cache.match(OFFLINE_URL));
}),
);
}
});
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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