ã¦ã§ãã¯ã¼ã«ã¼ API
ã¦ã§ãã¯ã¼ã«ã¼ (Web Worker) ã¨ã¯ãã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã«ãããã¹ã¯ãªããã®å¦çãã¡ã¤ã³ã¨ã¯å¥ã®ã¹ã¬ããã«ç§»ããããã¯ã°ã©ã¦ã³ãã§ã®å®è¡ãå¯è½ã«ããä»çµã¿ã®ãã¨ã§ããæéã®ãããå¦çãå¥ã®ã¹ã¬ããã«ç§»ããã¨ãåºæ¥ãããã UI ãæ å½ããã¡ã¤ã³ã¹ã¬ããã®å¦çã䏿ã»é å»¶ãããã«å®è¡ã§ããã¨ããå©ç¹ãããã¾ãã
æ¦å¿µã¨ä½¿ãæ¹
ã¯ã¼ã«ã¼ãªãã¸ã§ã¯ãã¯ã³ã³ã¹ãã©ã¯ã¿ã¼ï¼Worker() ãªã©ï¼ãç¨ãã¦çæãããååãæã¤ JavaScript ãã¡ã¤ã«ãå®è¡ãã¾ãããã®ãã¡ã¤ã«ã«ã¯ã¯ã¼ã«ã¼ã¹ã¬ããã§å®è¡ãããã³ã¼ããæ¸ããã¦ãã¾ãã
ã¯ã¼ã«ã¼ã¹ã¬ããã®ä¸ã§ã¯ã JavaScript ã®æ¨æºã®ä¸é£ã®é¢æ°ï¼StringãArrayãObjectãJSONããªã©ï¼ã«å ããä»»æã®ã³ã¼ãã®ã»ã¨ãã©ãå®è¡ãããã¨ãã§ãã¾ããããã¤ãã®ä¾å¤ãããã¾ããä¾ãã°ãã¯ã¼ã«ã¼å
ããç´æ¥ DOM ãæä½ãããã¨ã¯ã§ãã¾ãããã¾ãã Window ãªãã¸ã§ã¯ãã®æ¢å®ã®ã¡ã½ãããããããã£ã«ã¯ä½¿ç¨ã§ããªããã®ãããã¾ããå®è¡ã§ããã³ã¼ãã«ã¤ãã¦ã¯ã対å¿ãã¦ãã颿°ã対å¿ãã¦ãã Web APIãåç
§ãã¦ãã ããã
ã¯ã¼ã«ã¼ã¨ã¡ã¤ã³ã¹ã¬ããã¨ã®éã§ã¯ãã¡ãã»ã¼ã¸ã®ã·ã¹ãã ãéãã¦ãã¼ã¿ãããåãããã¾ãã両è
㯠postMessage() ã¡ã½ããã使ã£ã¦ã¡ãã»ã¼ã¸ãéä¿¡ããããåãåã£ãã¡ãã»ã¼ã¸ã«ã¯ onmessage ã¤ãã³ããã³ãã©ã¼ã§è¿ä¿¡ããããã¾ãï¼ã¡ãã»ã¼ã¸ã¯ã¡ãã»ã¼ã¸ã¤ãã³ãã® data 屿§ã«æ ¼ç´ããã¾ãï¼ããªãããã¼ã¿ã¯å
±æãããã®ã§ã¯ãªãè¤è£½ããã¾ãã
ã¯ã¼ã«ã¼ã親ãã¼ã¸ã¨åããªãªã¸ã³å ã§ãã¹ãã£ã³ã°ãããã®ã§ããã°ãæ°ããã¯ã¼ã«ã¼ãããã¤ãèµ·åãããã¨ãã§ãã¾ãã
ã¾ããã¯ã¼ã«ã¼ã¯ fetch() ã¾ã㯠XMLHttpRequest API ã使ç¨ãã¦ãããã¯ã¼ã¯ãªã¯ã¨ã¹ãã使ãããã¨ãã§ãã¾ãï¼ãã ãã XMLHttpRequest ã® responseXML 屿§ã常㫠null ã«ãªããã¨ã«æ³¨æãã¦ãã ããï¼ã
ã¯ã¼ã«ã¼ã®ç¨®é¡
ã¯ã¼ã«ã¼ã«ã¯ããã¤ãã®ç¨®é¡ãããã¾ãã
- å°ç¨ã¯ã¼ã«ã¼ (dedicated worker) ã¯ãåä¸ã®ã¹ã¯ãªããã§å©ç¨ãããã¯ã¼ã«ã¼ã§ãããã®ã³ã³ããã¹ãã¯
DedicatedWorkerGlobalScopeãªãã¸ã§ã¯ãã§è¡¨ç¾ããã¾ãã - å ±æã¯ã¼ã«ã¼ (shared worker) ã¯ãã¯ã¼ã«ã¼ã¨åããã¡ã¤ã³å ã«ããéããç°ãªãã¦ã£ã³ãã¦ã iframe ãªã©ã§åä½ããè¤æ°ã®ã¹ã¯ãªããã§å©ç¨ã§ããã¯ã¼ã«ã¼ã§ããå°ç¨ã¯ã¼ã«ã¼ãããå°ãè¤éã§ãã¹ã¯ãªããã¯ã¢ã¯ãã£ããªãã¼ããä»ãã¦éä¿¡ããå¿ è¦ãããã¾ãã
- ãµã¼ãã¹ã¯ã¼ã«ã¼ (service worker) ã¯ãåºæ¬çã«è¤æ°ã®ã¦ã§ãã¢ããªã±ã¼ã·ã§ã³éããã©ã¦ã¶ã¼ãï¼å©ç¨å¯è½ãªãï¼ãããã¯ã¼ã¯ã®éã§ãããã·ã¼ãµã¼ãã¼ã¨ãã¦åããã®ã§ããä»ã«ãã广çãªãªãã©ã¤ã³æä½ãå®ç¾ãããããããã¯ã¼ã¯ãªã¯ã¨ã¹ãã鮿ãã¦ãããã¯ã¼ã¯ãå©ç¨ã§ãããã©ããã§é©åãªã¢ã¯ã·ã§ã³ãåã£ããããµã¼ãã¼ã«ããè³ç£ãæ´æ°ããããããã¨ãªã©ãç®çã¨ãã¦ãã¾ããã¾ããããã·ã¥éç¥ãããã¯ã°ã©ã¦ã³ãåæAPIã¸ã®ã¢ã¯ã»ã¹ãå¯è½ã«ãªãäºå®ã§ãã
ã¯ã¼ã«ã¼ã³ã³ããã¹ã
Window ã¯ã¯ã¼ã«ã¼ããç´æ¥å©ç¨ã§ãã¾ããããåãã¡ã½ããã®å¤ãã¯å
±æãããããã¯ã¹ã¤ã³ (WindowOrWorkerGlobalScope) ã§å®ç¾©ãããåèªã® WorkerGlobalScope ããæ´¾çããã³ã³ããã¹ããéãã¦ã¯ã¼ã«ã¼ãå©ç¨ã§ããããã«ãã¾ãã
DedicatedWorkerGlobalScopeï¼å°ç¨ã¯ã¼ã«ã¼åãï¼SharedWorkerGlobalScopeï¼å ±æã¯ã¼ã«ã¼åãï¼ServiceWorkerGlobalScopeï¼ãµã¼ãã¹ã¯ã¼ã«ã¼åãï¼
ã¤ã³ã¿ã¼ãã§ã¤ã¹
Worker-
å®è¡ãã¦ããã¯ã¼ã«ã¼ã®ã¹ã¬ããã表ãã¾ããå®è¡ãã¦ããã¯ã¼ã«ã¼ã®ã³ã¼ãã¸ã¡ãã»ã¼ã¸ãéãéã«ç¨ãã¾ãã
WorkerLocation-
Workerã§å®è¡ãããã¹ã¯ãªããã®çµ¶å¯¾ä½ç½®ãå®ç¾©ãã¾ãã -
è¤æ°ã®é²è¦§ã³ã³ããã¹ãï¼ããªãã¡ã¦ã£ã³ãã¦ãã¿ããiframeï¼ãä»ã®ã¯ã¼ã«ã¼ããã¢ã¯ã»ã¹å¯è½ãªç¹å®ã®ç¨®é¡ã®ã¯ã¼ã«ã¼ã表ãã¾ãã
WorkerGlobalScope-
ããããã¯ã¼ã«ã¼ã®ä¸è¬çãªã¹ã³ã¼ãã表ãã¾ãï¼é常ã®ã¦ã§ãã³ã³ãã³ãã«å¯¾ãã¦
Windowãè¡ãã®ã¨åãå½¹å²ããã¾ãï¼ãããããã®ç¨®é¡ã®ã¯ã¼ã«ã¼ã«ã¯ããã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ãç¶æ¿ããããå ·ä½çãªæ©è½ã追å ããã¹ã³ã¼ããªãã¸ã§ã¯ããããã¾ãã DedicatedWorkerGlobalScope-
å°ç¨ã¯ã¼ã«ã¼ã®ã¹ã³ã¼ãã表ãã¾ãã
WorkerGlobalScopeãç¶æ¿ãã¦ãããç¬èªã®æ©è½ãããã¤ãå ãããã¦ãã¾ãã -
å ±æã¯ã¼ã«ã¼ã®ã¹ã³ã¼ãã表ãã¾ãã
WorkerGlobalScopeãç¶æ¿ãã¦ãããç¬èªã®æ©è½ãããã¤ãå ãããã¦ãã¾ãã -
ã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãï¼ã¯ã©ã¤ã¢ã³ãï¼ã«é¢ããèå¥åã¨ç¶æ ã表ãã¾ãã
ä¾
ç°¡åãªãã¢ã¨åºæ¬çãªä½¿ãæ¹ã¯ä»¥ä¸ãåç §ãã¦ãã ããã
- åºæ¬çãªå°ç¨ã¯ã¼ã«ã¼ã®ä¾ï¼å°ç¨ã¯ã¼ã«ã¼ãå®è¡ï¼
- åºæ¬çãªå ±æã¯ã¼ã«ã¼ã®ä¾ï¼å ±æã¯ã¼ã«ã¼ãå®è¡ï¼
- OffscreenCanvas ã¯ã¼ã«ã¼ã®ä¾ï¼OffscreenCanvas ã¯ã¼ã«ã¼ãå®è¡ï¼
ãããã®ãã¢ã®åãä»çµã¿ã詳ããç¥ãããå ´åã¯ãã¦ã§ãã¯ã¼ã«ã¼ã®ä½¿ç¨ãåç §ãã¦ãã ããã
仿§æ¸
| 仿§æ¸ |
|---|
| HTML > # workers > |
é¢é£æ å ±
- ã¦ã§ãã¯ã¼ã«ã¼ã®ä½¿ç¨
Workerã¤ã³ã¿ã¼ãã§ã¤ã¹SharedWorkerã¤ã³ã¿ã¼ãã§ã¤ã¹- ãµã¼ãã¹ã¯ã¼ã«ã¼ API