gpt4 book ai didi

javascript - ServiceWorker 中 SharedWorker 端口的等价物?

转载 作者:太空宇宙 更新时间:2023-11-04 16:21:02 27 4
gpt4 key购买 nike

SharedWorker 使用 Message Port 与 ParentWorker 交换消息。

父工

var port = new SharedWorker('/worker.js').port;
port.onmessage = function(e){
console.log(e.data);
};
port.start();
port.postMessage("Hello Shared Worker. I'm Mr. Tab");

共享 worker (worker.js)

onconnect = function(e){
var port = e.ports[0];
port.onmessage = function(e){
console.log(e.data);
};
port.start();
port.postMessage("Hello Mr. Tab. I'm Shared Worker.");
};

Service Worker 呢?有没有类似SharedWorker端口的?

最佳答案

这是它的行为方式:

// in the page:
navigator.serviceWorker.controller.postMessage("Hi!");

// in the ServiceWorker:
self.onmessage = function(event) {
event.source; // instance of Client
event.data; // "Hi!"
// reply
event.source.postMessage("Hey!");
};

// back in the page:
navigator.serviceWorker.onmessage = function(event) {
event.source; // instance of ServiceWorker
event.data; // "Hey!"
};

在撰写本文时,Chrome 目前根据早期规范将 postmessages 从 ServiceWorker 发送到 Window 到 window.onmessage。此外,event.source 为空。

如果您同时需要解决方案,请传入您自己的 MessageChannel。在 https://jakearchibald.github.io/isserviceworkerready/demos/postMessage/ 查看演示

关于javascript - ServiceWorker 中 SharedWorker 端口的等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29230470/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com