Baseline Widely available *
respondWith()
㯠FetchEvent
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¡ã½ããã§ããã©ã¦ã¶ã¼æ¢å®ã® fetch å¦çãææ¢ãã¦ãèªåèªèº«ã§ Response
ç¨ã®ãããã¹ãæä¾ã§ããããã«ãã¾ãã
ããã¦ãã®å ´åãåä¿¡è
ãçè§£ã§ããã©ããªã¬ã¹ãã³ã¹ã§ãæä¾ã§ãã¾ããä¾ãã°ã<img>
ããªã¯ã¨ã¹ããéå§ããå ´åãã¬ã¹ãã³ã¹æ¬ä½ã«ã¯ç»åãã¼ã¿ãå¿
è¦ã§ããã»ãã¥ãªãã£ã®çç±ãããã°ãã¼ãã«ã«ã¼ã«ãå°ãããã¾ãã
type
ã "opaque
" ï¼ä¸éæï¼ã® Response
ãªãã¸ã§ã¯ããè¿ããã¨ãã§ããã®ã¯ã fetchEvent.request
ãªãã¸ã§ã¯ãã® mode
ã "no-cors
" ã®å ´åã ãã§ããããã¯ãã©ã¤ãã¼ããªãã¼ã¿ã®æ¼æ´©ãé²ãã¾ããtype
ã "opaqueredirect
" ï¼ä¸éæãªãªãã¤ã¬ã¯ãï¼ã® Response
ãªãã¸ã§ã¯ããè¿ããã¨ãã§ããã®ã¯ãfetchEvent.request
ãªãã¸ã§ã¯ãã® mode
ã "manual
" ã®å ´åã ãã§ããfetchEvent.request
ãªãã¸ã§ã¯ãã® mode
ã "same-origin
" ã®å ´åãtype
ã "cors
" ã® Response
ãªãã¸ã§ã¯ããè¿ããã¨ã¯ã§ãã¾ãããFirefox 59 以éããµã¼ãã¹ã¯ã¼ã«ã¼ã FetchEvent.respondWith()
ã« Response
ãæä¾ããã¨ãResponse.url
å¤ã¯æçµçã«è§£æ±ºããã URL ã¨ãã¦ããããã¯ã¼ã¯ãªã¯ã¨ã¹ãã«ä»å
¥ããéã«ä¼æ¬ãããããã«ãªãã¾ãããResponse.url
å¤ã空æååã®å ´åã¯ãFetchEvent.request.url
ãæçµç㪠URL ã¨ãã¦ä½¿ç¨ããã¾ãã
ãã¤ã¦ã¯ FetchEvent.request.url
ããã¹ã¦ã®å ´åã«æçµ URL ã¨ãã¦ä½¿ããã¦ãã¾ãããä¸ãããã Response.url
ã¯å®éã«ã¯ç¡è¦ããã¦ãã¾ããã
ã¤ã¾ããä¾ãã°ããµã¼ãã¹ã¯ã¼ã«ã¼ãã¹ã¿ã¤ã«ã·ã¼ããã¯ã¼ã«ã¼ã¹ã¯ãªããã«ä»å
¥ããã¨ãä¸ãããã Response.url
ãããµããªã½ã¼ã¹ãèªã¿è¾¼ãç¸å¯¾ç㪠@import
ã importScripts()
ã®ä»£ããã«ä½¿ããã¾ã (Firefox ãã° 1222008)ã
ããã¦ãã®ãããã¯ã¼ã¯ãªã¯ã¨ã¹ãã«å¯¾ãã¦ãæçµ URL ã観測ã§ããªããããã®å¤æ´ã¯å½±é¿ããã¾ãããããããå°ãã ãé¢ä¿ããå ´åãããã¾ãã
fetch()
ãä»å
¥ãããå ´åãçµæã® Response.url
ã§æçµ URL ã観測ã§ãã¾ããself.location
ãã»ããããã®ã«ä½¿ãããã¯ã¼ã«ã¼ã¹ã¯ãªããã®ç¸å¯¾ URL ã®ä»£ããã®ãã¼ã¹ URL ã¨ãã¦ä½¿ããã¾ãã@import
èªã¿è¾¼ã¿ã®ä»£ããã®ãã¼ã¹ URL ã¨ãã¦ä½¿ããã¾ããWindow
㨠iframe
ã®ããã²ã¼ã·ã§ã³ãªã¯ã¨ã¹ãã¯ãã®æçµ URL ã使ãããªãããã¨ã«æ³¨æãã¦ãã ãããHTML 仿§ã®ããã²ã¼ã·ã§ã³ã®ãªãã¤ã¬ã¯ãã®å¦çæ¹æ³ã§ã¯ãWindow.location
ã®ããã«ãªã¯ã¨ã¹ã URL ã使ãã¾ããããã¯ããªãã©ã¤ã³ã®æã«ãã¦ã¼ã¶ã¼ã«è¦ãã URL ã夿´ãããã¨ãªããµã¤ããã代æ¿ã®ãã¦ã§ããã¼ã¸ãæä¾ã§ããã¨ãããã¨ãæå³ãã¾ãã
response
Response
ã¾ã㯠Response
ã«è§£æ±ºããã Promise
ããã以å¤ã®å ´åã¯ããããã¯ã¼ã¯ã¨ã©ã¼ããã§ããå
ã«è¿ããã¾ãã
ãªã (undefined
)ã
NetworkError
DOMException
ä¸è¨ã®ãã°ãã¼ãã«ã«ã¼ã«ãã«ãã³ããããããã«ããããã¯ã¼ã¯ã¨ã©ã¼ã¯ FetchEvent.request.mode
㨠Response.type
ã®å¤ã®çµã¿åããã§èµ·åããã¾ãã
InvalidStateError
DOMException
ã¤ãã³ããé
ä¿¡ããã¦ããªãããrespondWith()
ãæ¢ã«å¼ã³åºããã¦ãã¾ãã
ãã® fetch ã¤ãã³ãã¯ãã£ãã·ã¥ API ããã®ã¬ã¹ãã³ã¹ãè¿ããã¨ãããªãå ´åã«ã¯ãããã¯ã¼ã¯ã«ãã©ã¼ã«ããã¯ãã¾ãã
addEventListener("fetch", (event) => {
// æ¢å®ã®åä½ãææ¢ãããªã¯ã¨ã¹ããèªåã§å¦çãã¾ãã
event.respondWith(
(async () => {
// ãã£ãã·ã¥ããã¬ã¹ãã³ã¹ãåå¾ãããã¨ãã¾ãã
const cachedResponse = await caches.match(event.request);
// è¦ã¤ãã£ãããããè¿ãã¾ãã
if (cachedResponse) return cachedResponse;
// ãã£ãã·ã¥å
ã«ä¸è´ãããã®ãè¦ã¤ãããªãã£ãå ´åã¯ããããã¯ã¼ã¯ã使ç¨ãã¾ãã
return fetch(event.request);
})(),
);
});
ã¡ã¢: caches.match()
ã¯ä¾¿å©ãªã¡ã½ããã§ããåçã®æ©è½ã¯ãcache.match()
ãããããã®ãã£ãã·ã¥ã«å¯¾ãã¦ï¼caches.keys()
ãè¿ãé ã«ï¼Response
ãè¿ã£ã¦ããã¾ã§å¼ã³åºããã¨ã§ãã
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