gpt4 book ai didi

javascript - 共享 worker 在重新加载页面时终止

转载 作者:行者123 更新时间:2023-12-04 18:04:51 37 4
gpt4 key购买 nike

为什么共享 worker 在重新加载页面时死了?应该是复活了我该如何解决这个问题?

重装前

enter image description here

重新加载后(在example.com上按F5)

enter image description here

parent worker

var port = new SharedWorker('/app/worker-5n1261e73b.js').port;
port.onmessage = function(e){
console.log(e.data);
};
port.start();

worker-5n1261e73b.js
onconnect = function(e){
var port = e.ports[0];
port.onmessage = function(e){
console.log(e.data);
};
port.start();
port.postMessage('Connected');
};

最佳答案

当页面重新加载时,javascript 将再次执行,创建与 SharedWorker 的连接的代码也是如此。onconnect()事件处理程序,在您的 Sharedworker 中,不知道该选项卡是重新加载还是一个全新的选项卡,因此它只是将该选项卡注册为新的连接端口,停止与前一个选项卡端口的通信(如果页面被重新加载)。换句话说,重新加载的页面为 Sharedworker 获得了一个新的端口号。
如果您当时只打开了一个选项卡,请确保在重新加载页面时停止并重新创建 Sharedworker,但如果您当时打开了多个页面,则 Sharedworker 不会因为其他实时连接而停止工作。

关于javascript - 共享 worker 在重新加载页面时终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28913545/

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