ã¡ã¢: ãã®æ©è½ã¯ã¦ã§ãã¯ã¼ã«ã¼å ã§å©ç¨å¯è½ã§ãã
ãµã¼ãã¹ã¯ã¼ã«ã¼ã¯ãåºæ¬çã«ã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ããã©ã¦ã¶ã¼ãããã¦ï¼ããç¹ãã£ã¦ããã°ï¼ãããã¯ã¼ã¯ã®éã«ä»å¨ãããããã·ã¼ãµã¼ãã¼ã®ããã«æ¯ãèãã¾ããããã¯ããããããªãã©ã¤ã³ã®æä½æ§ãå¯è½ã«ããããã«æå³ããã¦ããããããã¯ã¼ã¯ã®ãªã¯ã¨ã¹ãã«ä»å¨ãã¦ãããã¯ã¼ã¯ã®ä½¿ç¨å¯å¦ã®ç¶æ³ã«åºã¥ãã¦é©åãªå¯¾å¿ãåã£ããããµã¼ãã¼ä¸ã«ããè³ç£ãæ´æ°ããããã¾ããã¾ããããã·ã¥éç¥ãããã¯ã°ã©ã¦ã³ãåæã® API 群ã¸ã®ã¢ã¯ã»ã¹ãã§ããããã«ãªãã¾ãã
ãµã¼ãã¹ã¯ã¼ã«ã¼ã®æ¦å¿µã¨ä½¿ãæ¹ãµã¼ãã¹ã¯ã¼ã«ã¼ã¯ããããªãªã¸ã³ã¨ãã¹ã«å¯¾ãã¦ç»é²ãããã¤ãã³ãé§ååã®ã¯ã¼ã«ã¼ã§ãã JavaScript ãã¡ã¤ã«ã®å½¢ãåããããã²ã¼ã·ã§ã³ããªã½ã¼ã¹ã¸ã®ãªã¯ã¨ã¹ããæ¨ªåããæ¹å¤ãããç´°ããç²åº¦ã§ãªã½ã¼ã¹ããã£ãã·ã¥ãããã¨ã§é¢é£ä»ããããã¦ã§ããã¼ã¸ããµã¤ããå¶å¾¡ããããããã®ç¶æ³ï¼ãã£ã¨ãé¡èãªä¾ã¯ããããã¯ã¼ã¯ãå©ç¨ã§ããªãã¨ãï¼ã«ã¢ããªãã©ã®ããã«æ¯ãèãããå®å ¨ã«å¶å¾¡ãããã¨ãã§ãã¾ãã
ãµã¼ãã¹ã¯ã¼ã«ã¼ã¯ã¯ã¼ã«ã¼ã®ã³ã³ããã¹ãã§å®è¡ããã¾ããå¾ã£ã¦ãDOM ã¸ã¢ã¯ã»ã¹ãããã¨ãã§ãããã¢ããªãå®è¡ãã主è¦ãª JavaScript ã¨ã¯ç°ãªãã¹ã¬ããã§å®è¡ããããããä»ã®ã¿ã¹ã¯ããããã¯ãããã¨ã¯ããã¾ãããå®å ¨ã«éåæã§è¨è¨ããã¦ãã¾ãããã®ãããåæåã® XHR ãã¦ã§ãã¹ãã¬ã¼ã¸ã®ãã㪠API ããµã¼ãã¹ã¯ã¼ã«ã¼ã§ä½¿ç¨ãããã¨ã¯ã§ãã¾ããã
ãµã¼ãã¹ã¯ã¼ã«ã¼ã® JavaScript ã¢ã¸ã¥ã¼ã«ã¯åçã«ã¤ã³ãã¼ãã§ãããimport()
ã¯ãµã¼ãã¹ã¯ã¼ã«ã¼ã®ã°ãã¼ãã«ã¹ã³ã¼ãã§å¼ã³åºãããã¨ä¾å¤ãçºçãã¾ãã import
æã使ç¨ããéçã¤ã³ãã¼ãã¯è¨±å¯ããã¦ãã¾ãã
ãµã¼ãã¹ã¯ã¼ã«ã¼ã¯ã»ãã¥ãªãã£ä¸ã®çç±ããã HTTPS éä¿¡ã§ã®ã¿åä½ãã¾ããæãéè¦ãªãã¨ã¯ãHTTP æ¥ç¶ã¯ä¸éè æ»æã«ããæªæã®ããã³ã¼ãæ³¨å ¥ã®å½±é¿ãåãããããããããå¼·å㪠API ã¸ã®ã¢ã¯ã»ã¹ã許å¯ãããã¨ããã®æ»æã¯ããæªããã®ã«ãªãå¯è½æ§ãããã¨ãããã¨ã§ããFirefox ã§ã¯ãã©ã¤ãã¼ããã©ã¦ã¸ã³ã°ã¢ã¼ãã§ãµã¼ãã¹ã¯ã¼ã«ã¼ API ãå©ç¨ãããã¨ã¯ã§ãã¾ããã
ã¡ã¢: Firefox ã§ã¯ããã¹ãã®ããã«ãµã¼ãã¹ã¯ã¼ã«ã¼ã HTTP (å®å ¨ã§ã¯ãªã) ä¸ã§å®è¡ãããã¨ãã§ãã¾ããããã¯ã HTTP ã«ãããµã¼ãã¹ã¯ã¼ã«ã¼ãæå¹å (ãã¼ã«ããã¯ã¹ãéããã¨ã) ãªãã·ã§ã³ã Firefox Devtools è¨å®ã¡ãã¥ã¼ã§ãã§ãã¯ããã ãã§ãã
ã¡ã¢: ãµã¼ãã¹ã¯ã¼ã«ã¼ã¯ AppCache ã®ãããªããã®åéã«ããã以åã®è©¦ã¿ããåã£ã¦ãã¾ãã以åã®ãã®ã¯ãããªãããããã¨ãã¦ãããã¨ãæ³å®ãã¦ããªãã£ãããæ³å®ãæ£ãããªãã£ãã¨ãã«å£ããããã¦ããã®ã«å¯¾ãã¦ããµã¼ãã¹ã¯ã¼ã«ã¼ã¯ããªãããã¹ã¦ãç´°ããå¶å¾¡ãããã¨ãã§ããããã§ãã
ã¡ã¢: ãµã¼ãã¹ã¯ã¼ã«ã¼ã¯ãããã¹ãé »ç¹ã«ä½¿ç¨ãã¦ãã¬ã¹ãã³ã¹ãæ¥ãã®ãå¾ ã£ã¦ãããæåã¾ãã¯å¤±æã®ã¢ã¯ã·ã§ã³ã§å¿çãã¾ãããããã¹ã®ã¢ã¼ããã¯ãã£ã¯ãã®é åã«å¯¾ãã¦çæ³çãªãã®ã§ãã
ç»é²ãµã¼ãã¹ã¯ã¼ã«ã¼ã¯æåã« ServiceWorkerContainer.register()
ã¡ã½ããã使ã£ã¦ç»é²ããã¾ããæåãããããµã¼ãã¹ã¯ã¼ã«ã¼ãã¯ã©ã¤ã¢ã³ãã«ãã¦ã³ãã¼ããããã¦ã¼ã¶ã¼ãã¢ã¯ã»ã¹ãã URL ã®ãªãªã¸ã³å
å
¨ä½ãã¾ãã¯æå®ãããã®ãµãã»ããå
ã«å¯¾ãã¦ã¤ã³ã¹ãã¼ã«ã¨æå¹åï¼ä¸è¨åç
§ï¼ã試ã¿ããã¾ãã
ãã®æ®µéã§ããµã¼ãã¹ã¯ã¼ã«ã¼ã¯ä»¥ä¸ã®ã©ã¤ããµã¤ã¯ã«ã§å®è¡ããã¾ãã
ã¦ã¼ã¶ã¼ãæåã«ãµã¼ãã¹ã¯ã¼ã«ã¼ãå¶å¾¡ãããµã¤ãããã¼ã¸ã«ã¢ã¯ã»ã¹ããã¨ããµã¼ãã¹ã¯ã¼ã«ã¼ãç´ã¡ã«ãã¦ã³ãã¼ãããã¾ãã
ãã®å¾ã次ã®å ´é¢ã§æ´æ°ããã¾ãã
ãã¦ã³ãã¼ããããã¡ã¤ã«ãæ°ããã¨åãã£ãå ´åãæ¢åã®ãµã¼ãã¹ã¯ã¼ã«ã¼ã¨ãã¤ãåä½ã«æ¯è¼ãã¦ç°ãªã£ã¦ããå ´åãããã®ãã¼ã¸ããµã¤ãã§æåã®ãµã¼ãã¹ã¯ã¼ã«ã¼ãè¦ã¤ãã£ãå ´åã¯ãã¤ã³ã¹ãã¼ã«ã試ã¿ããã¾ãã
ãµã¼ãã¹ã¯ã¼ã«ã¼ãåãã¦æå¹åãããã¨ãã§ããã°ãã¤ã³ã¹ãã¼ã«ã試ã¿ãããã¤ã³ã¹ãã¼ã«ã«æåããå¾ã§ãæå¹åããã¾ãã
å©ç¨ã§ããæ¢åã®ãµã¼ãã¹ã¯ã¼ã«ã¼ããã£ãå ´åã¯ãæ°ãããã¼ã¸ã§ã³ãããã¯ã°ã©ã¦ã³ãã§ã¤ã³ã¹ãã¼ã«ããã¾ãããã¾ã æå¹å (activate) ããã¾ããããã®æç¹ã®ãã®ãå¾
æ©ä¸ (waiting) ã®ã¯ã¼ã«ã¼ã¨å¼ã³ã¾ããã¾ã 使ç¨ãã¦ããå¤ããµã¼ãã¹ã¯ã¼ã«ã¼ãèªã¿è¾¼ãã§ãããã¼ã¸ããªããªã£ãæã®ã¿ãæå¹åããã¾ãããã¼ã¸ãèªã¿è¾¼ã¾ããªããªã£ããããã«ãæ°ãããµã¼ãã¹ã¯ã¼ã«ã¼ãæå¹åããã¾ãï¼ã¢ã¯ãã£ãã¯ã¼ã«ã¼ã«ãªãã¾ãï¼ã ServiceWorkerGlobalScope.skipWaiting()
ã使ç¨ããã¨ããã«æå¹åãããã¨ãã§ãã Clients.claim()
ã使ç¨ãã¦ã¢ã¯ãã£ãã¯ã¼ã«ã¼ãæ¢åã®ãã¼ã¸ã®ç®¡çãå§ãããã¨ãã§ãã¾ãã
install
ãåãåããã¨ãã§ãã¾ããã¤ãã³ããçºè¡ãããã¨ãã®æ¨æºçãªã¢ã¯ã·ã§ã³ã¯ã使ç¨ããããã«ãµã¼ãã¹ã¯ã¼ã«ã¼ãæºåãããã¨ãä¾ãã°çµè¾¼ã¿ã¹ãã¬ã¼ã¸ API ã使ç¨ãã¦ãã£ãã·ã¥ãæ§ç¯ããããã¢ããªããªãã©ã¤ã³ã®æã«ä½¿ç¨ãããè³ç£ããã®ä¸ã«é
ç½®ããããããã¨ã§ãã
activate
ã¤ãã³ããããã¾ãããã®ã¤ãã³ããçºè¡ãããæç¹ã¯ãå¤ããã£ãã·ã¥ããåã®ãã¼ã¸ã§ã³ã®ãµã¼ãã¹ã¯ã¼ã«ã¼ã«é¢ãããã®ä»ã®ãã®ãæ´çããã®ã«ããã¿ã¤ãã³ã°ã§ãã
ãµã¼ãã¹ã¯ã¼ã«ã¼ã¯ FetchEvent
ã¤ãã³ãã使ç¨ãã¦ãªã¯ã¨ã¹ãã«å¿çãããã¨ãã§ãã¾ããFetchEvent.respondWith()
ã¡ã½ããã使ç¨ãã¦ããããã®ãªã¯ã¨ã¹ãã«å¯¾ããã¬ã¹ãã³ã¹ãä½ã§ãæãããã«å¤æ´ã§ãã¾ãã
ã¡ã¢: install
/activate
ã¤ãã³ãã¯å®äºããã¾ã§ã«æéããããå¯è½æ§ãããããããµã¼ãã¹ã¯ã¼ã«ã¼ã®ä»æ§æ¸ã§ã¯ waitUntil()
ã¡ã½ãããæä¾ãã¦ãã¾ãã install
ã¾ã㯠activate
ã¤ãã³ãå
ã§ãããã¹ãæå®ãã¦ãã®ã¡ã½ãããå¼ã³åºãã¨ããããã¹ãæ£å¸¸ã«è§£æ±ºãããã¾ã§ã fetch
ã push
ãªã©ã®é¢æ°ã¤ãã³ãã¯ãµã¼ãã¹ã¯ã¼ã«ã¼ã«é
ä¿¡ããã¾ããã
æåã®åºæ¬çãªä¾ãã©ã®ããã«æ§ç¯ãããã«ã¤ãã¦ã®å®å ¨ãªãã¥ã¼ããªã¢ã«ã¯ããµã¼ãã¹ã¯ã¼ã«ã¼ã®ä½¿ç¨ãèªãã§ãã ããã
éçã«ã¼ãã£ã³ã°ã使ç¨ãã¦ããªã½ã¼ã¹ã®å徿¹æ³ãå¶å¾¡ãµã¼ãã¹ã¯ã¼ã«ã¼ã¯ãä¸è¦ãªããã©ã¼ãã³ã¹ã³ã¹ããçºçããå¯è½æ§ãããã¾ãããã°ããã¶ãã«ãã¼ã¸ãåãã¦èªã¿è¾¼ã¾ããå ´åããã©ã¦ã¶ã¼ã¯ãµã¼ãã¹ã¯ã¼ã«ã¼ãèµ·åãã¦å®è¡ãããã®ãå¾ ããªããã°ãã©ã®ã³ã³ãã³ããèªã¿è¾¼ãã¹ãããã¾ãããã£ãã·ã¥ã¾ãã¯ãããã¯ã¼ã¯ã®ã©ã¡ãããåå¾ãã¹ããã夿ã§ãã¾ããã
ç¹å®ã®ã³ã³ãã³ããã©ãããåå¾ãããã¹ããäºåã«åãã£ã¦ããå ´åã¯ããµã¼ãã¹ã¯ã¼ã«ã¼ãå®å
¨ã«ãã¤ãã¹ãã¦ããªã½ã¼ã¹ãå³åº§ã«åå¾ãããã¨ãã§ãã¾ããInstallEvent.addRoutes()
ã¡ã½ããã¯ããã®ä½¿ç¨äºä¾ããã®ä»ã®å®è£
ã«ã使ç¨ã§ãã¾ãã
ãµã¼ãã¹ã¯ã¼ã«ã¼ã¯æ¬¡ã®ãããªç¨éãæ³å®ãã¦ãã¾ãã
è¿ãå°æ¥ããµã¼ãã¹ã¯ã¼ã«ã¼ã¯ãã¤ãã£ãã¢ããªã§å®ç¾ã§ãããã¨ã«è¿ãããã®ä»ããã¤ãã®ä¾¿å©ãªãã¨ããã¦ã§ããã©ãããã©ã¼ã ä¸ã§ãå®ç¾ããäºãã§ããããã«ãªãã§ããããè峿·±ããã¨ã«ã次ã®ãããªä»ã®ä»æ§æ¸ã§ãããµã¼ãã¹ã¯ã¼ã«ã¼ã®ã³ã³ããã¹ããå©ç¨ã§ããããã«ãªã£ã¦ãã¦ãã¾ãã
Cache
ServiceWorker
ã®ã©ã¤ãã©ã¤ã¯ã«ã®ä¸é¨ã¨ãã¦ãã£ãã·ã¥ããããRequest
/ Response
ãªãã¸ã§ã¯ãã®ãã¢ã®ããã®ã¹ãã¬ã¼ã¸ã§ãã
CacheStorage
Cache
ãªãã¸ã§ã¯ãã®ã¹ãã¬ã¼ã¸ã§ãããã㯠ServiceWorker
ãã¢ã¯ã»ã¹ã§ãããã¹ã¦ã®ååä»ããã£ãã·ã¥ã®ã¸ã®ç®é²ãæä¾ããæååã®ååãã対å¿ãã Cache
ã¸ã®ããããä¿æãã¾ãã
Client
ãµã¼ãã¹ã¯ã¼ã«ã¼ã¯ã©ã¤ã¢ã³ãã®ã¹ã³ã¼ãã表ãã¾ãããµã¼ãã¹ã¯ã¼ã«ã¼ã¯ã©ã¤ã¢ã³ãã¯ãé²è¦§ã³ã³ããã¹ãå
ã®ææ¸ã¾ã㯠SharedWorker
ã§ãããã¢ã¯ãã£ãã¯ã¼ã«ã¼ã«ãã£ã¦å¶å¾¡ããã¦ãã¾ãã
Clients
Client
ãªãã¸ã§ã¯ãã®ãªã¹ãã®ããã®ã³ã³ããã¼ã§ãããç¾å¨ã®ãªãªã¸ã³ã«ããæå¹åããããµã¼ãã¹ã¯ã¼ã«ã¼ã¯ã©ã¤ã¢ã³ãã«ã¢ã¯ã»ã¹ããä¸»ãªæ¹æ³ã§ãã
ExtendableEvent
ServiceWorkerGlobalScope
ã§é
ä¿¡ããã install
ã¤ãã³ãã activate
ã¤ãã³ãã®ã©ã¤ãã¿ã¤ã ãå»¶ã°ãã¾ããããã¯ããã¼ã¿ãã¼ã¹ã¹ãã¼ãã®æ´æ°ã使ãããªããªã£ããã£ãã·ã¥ã¨ã³ããªã¼ã®åé¤ãªã©ãçµããã¾ã§æ©è½çã¤ãã³ã (Functional events) ã ServiceWorker
ã«é
ä¿¡ãããªããã¨ãä¿è¨¼ãã¾ãã
ExtendableMessageEvent
ãµã¼ãã¹ã¯ã¼ã«ã¼ã§çºçãã message
ã¤ãã³ãã®ã¤ãã³ããªãã¸ã§ã¯ãï¼å¥ã®ã³ã³ããã¹ããã ServiceWorkerGlobalScope
ã§ãã£ã³ãã«ã¡ãã»ã¼ã¸ãåä¿¡ããæï¼ã®æå¹æéãå»¶é·ãã¾ãã
FetchEvent
ãã³ãã©ã¼ onfetch
ã«æ¸¡ããã弿°ã FetchEvent
㯠ServiceWorkerGlobalScope
ã§é
ä¿¡ãããèªã¿åãã¢ã¯ã·ã§ã³ã表ç¾ãã¦ãã¾ããããã¯ããªã¯ã¨ã¹ãã¨çµæã®ã¬ã¹ãã³ã¹ã«é¢ããæ
å ±ãå«ã¿ãFetchEvent.respondWith()
ã¡ã½ãããæä¾ãã¦ãå¶å¾¡ããããã¼ã¸ã«ä»»æã®ã¬ã¹ãã³ã¹ãè¿ããã¨ãã§ãã¾ãã
InstallEvent
oninstall
ãã³ãã©ã¼ã«æ¸¡ããã弿°ã§ã InstallEvent
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ ServiceWorker
ã® ServiceWorkerGlobalScope
ã«é
ä¿¡ãããã¤ã³ã¹ãã¼ã«ã¢ã¯ã·ã§ã³ã表ç¾ãã¾ãã ExtendableEvent
ã®åã¨ãã¦ãFetchEvent
ã®ãããªæ©è½ã¤ãã³ããã¤ã³ã¹ãã¼ã«ä¸ã«é
ä¿¡ãããªããã¨ãä¿è¨¼ãã¦ãã¾ãã
NavigationPreloadManager
ãµã¼ãã¹ã¯ã¼ã«ã¼ã«ãããªã½ã¼ã¹ã®å èªã¿ã管çããããã®ã¡ã½ãããæä¾ãã¾ãã
ServiceWorker
ãµã¼ãã¹ã¯ã¼ã«ã¼ã表ãã¾ããè¤æ°ã®é²è¦§ã³ã³ããã¹ãï¼ä¾ï¼ãã¼ã¸ãã¯ã¼ã«ã¼ãªã©ï¼ãåã ServiceWorker
ãªãã¸ã§ã¯ãã«é¢é£ä»ãããã¨ãã§ãã¾ãã
ServiceWorkerContainer
ãµã¼ãã¹ã¯ã¼ã«ã¼ã®ç»é²ãç»é²è§£é¤ãæ´æ°ããµã¼ãã¹ã¯ã¼ã«ã¼ã¨ãã®ç»é²ã®ç¶æ ã¸ã®ã¢ã¯ã»ã¹ãªã©ã®æ©è½ãå«ãããããã¯ã¼ã¯ã¨ã³ã·ã¹ãã ã®å ¨ä½ã¦ãããã¨ãã¦ã®ãµã¼ãã¹ã¯ã¼ã«ã¼ã表ããªãã¸ã§ã¯ããæä¾ãã¾ãã
ServiceWorkerGlobalScope
ãµã¼ãã¹ã¯ã¼ã«ã¼ã®ã°ãã¼ãã«å®è¡ã³ã³ããã¹ãã表ãã¾ãã
ServiceWorkerRegistration
ãµã¼ãã¹ã¯ã¼ã«ã¼ã®ç»é²ã表ãã¾ãã
WindowClient
ã¢ã¯ãã£ããªã¯ã¼ã«ã¼ã«ãã£ã¦å¶å¾¡ãããé²è¦§ã³ã³ããã¹ãå
ã®ææ¸ã§ãããµã¼ãã¹ã¯ã¼ã«ã¼ã¯ã©ã¤ã¢ã³ãã®ã¹ã³ã¼ãã表ãã¾ããããã¯ç¹å¥ãªç¨®é¡ã® Client
ãªãã¸ã§ã¯ãã§ãããã¤ãã®è¿½å ã¡ã½ããã¨ããããã£ãå©ç¨å¯è½ã§ãã
Window.caches
and WorkerGlobalScope.caches
ç¾å¨ã®kã³ããã¹ãã«é¢é£ä»ãããã CacheStorage
ãªãã¸ã§ã¯ãã§ãã
Navigator.serviceWorker
ããã³ WorkerNavigator.serviceWorker
ServiceWorkerContainer
ãªãã¸ã§ã¯ããè¿ãã¾ãããã®ãªãã¸ã§ã¯ãã¯ãé¢é£ä»ããããææ¸ã® ServiceWorker
ãªãã¸ã§ã¯ãã®ç»é²ãåé¤ãã¢ããã°ã¬ã¼ããéä¿¡ã¸ã®ã¢ã¯ã»ã¹ãæä¾ãã¾ãã
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