åºæ¬çãªå ±æã¯ã¼ã«ã¼ã®ä¾ï¼å ±æã¯ã¼ã«ã¼ãå®è¡ï¼ã«ã¯ 2 ã¤ã® HTML ãã¼ã¸ããããããããã§ã¯ JavaScript ã§åç´ãªè¨ç®ãè¡ã£ã¦ãã¾ããç°ãªãã¹ã¯ãªãããåãã¯ã¼ã«ã¼ãã¡ã¤ã«ã使ç¨ãã¦è¨ç®ãè¡ã£ã¦ããããããã¼ã¸ãç°ãªãã¦ã£ã³ãã¦ã§å®è¡ããã¦ãã¦ããã©ã¡ããã¢ã¯ã»ã¹ãããã¨ãã§ãã¾ãã
以ä¸ã®ã³ã¼ãã§ã¯ SharedWorker
ãªãã¸ã§ã¯ããã SharedWorker()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã使ç¨ãã¦çæãã¦ãã¾ããã©ã¡ãã®ã¹ã¯ãªããããããæ ¼ç´ãã¾ãã
const myWorker = new SharedWorker("worker.js");
ã©ã¡ãã®ã¹ã¯ãªããããSharedWorker.port
ããããã£ã使ç¨ãã¦ä½æããã MessagePort
ãªãã¸ã§ã¯ããéãã¦ã¯ã¼ã«ã¼ã«ã¢ã¯ã»ã¹ãã¾ããaddEventListener ã使ç¨ã㦠onmessage ã¤ãã³ããé¢é£ã¥ãããã¦ããå ´åããã¼ãã¯ãã® start()
ã¡ã½ããã使ç¨ãã¦æåã§éå§ããã¾ãã
ãã¼ããéå§ãããã¨ãã©ã¡ãã®ã¹ã¯ãªããã port.postMessage()
㨠port.onmessage
ã使ç¨ãã¦ãããããã¯ã¼ã«ã¼ã«ã¡ãã»ã¼ã¸ãæç¨¿ããã¯ã¼ã«ã¼ããéãããã¡ãã»ã¼ã¸ãå¦çãã¾ãã
first.onchange = () => {
myWorker.port.postMessage([first.value, second.value]);
console.log("Message posted to worker");
};
second.onchange = () => {
myWorker.port.postMessage([first.value, second.value]);
console.log("Message posted to worker");
};
myWorker.port.onmessage = (e) => {
result1.textContent = e.data;
console.log("Message received from worker");
};
ã¯ã¼ã«ã¼å
é¨ã§ã¯ onconnect
ãã³ãã©ã¼ã使ç¨ãã¦ãåè¿°ã¨åããã¼ãã«æ¥ç¶ãã¾ãããã®ã¯ã¼ã«ã¼ã«é¢é£ãããã¼ã㯠connect
ã¤ãã³ãã® ports
ããããã£ã§ã¢ã¯ã»ã¹ã§ãã¾ãããããã MessagePort
ã使ç¨ãã¦ãã¯ã¼ã«ã¼ãéå§ãã¾ãããã¼ããå§ããã«ã¯ start()
ã¡ã½ããããã¡ã¤ã³ã¹ã¬ããããéãããã¡ãã»ã¼ã¸ãå¦çããã«ã¯ onmessage
ãã³ãã©ã¼ã使ç¨ãã¾ãã
onconnect = (e) => {
const port = e.ports[0];
port.addEventListener("message", (e) => {
const workerResult = `Result: ${e.data[0] * e.data[1]}`;
port.postMessage(workerResult);
});
port.start(); // Required when using addEventListener. Otherwise called implicitly by onmessage setter.
};
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