Chrome未加载共享Worker(除非处于隐身模式)

chy5wohz  于 2023-03-27  发布在  Go
关注(0)|答案(2)|浏览(241)

编辑

shared-worker.js文件重命名为其他任何文件,例如shared-worker-new.js,似乎可以解决这个该高速缓存。重新启动浏览器并进行硬重新加载,但shared-worker.js就是不想工作。new worker文件似乎没有遇到缓存问题。重新加载后,对文件的更改会立即应用。有人知道为什么我不能'不要用shared-worker.js

/编辑

我似乎无法在Google Chrome(67.0.3396.99)中加载我的共享工作器。但是,当我切换到隐身模式时,它可以正常工作。Firefox(61.0.1)在常规和私人模式下都可以正常工作。我已经尝试禁用我的浏览器插件,但也不起作用。
我有3个文件(在同一目录下):index.htmlapp.jsshared-worker.js

索引.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Shared Worker Example</title>
</head>
<body>
    <script src="app.js"></script>
</body>
</html>

应用程序.js

var worker = new SharedWorker('./shared-worker.js');

worker.port.onmessage = function(message) {
    console.log('message from the shared worker:', message.data);
};

worker.port.start();
worker.port.postMessage('Hello worker');

shared-worker.js

self.onconnect = function(connect) {
    var port = connect.ports[0];

    port.addEventListener('message', function(message) {
        port.postMessage(`I have received "${message.data}"`);
    });

    port.start();
};

我正在通过php -S localhost:9000运行应用程序

  • 在Firefox中,控制台输出以下内容:message from the shared worker: I have received "Hello worker" .
  • 在一个 incognito Chrome选项卡中,我得到了以下输出:message from the shared worker: I have received "Hello worker" .
  • 在一个普通的Chrome标签中,我根本没有输出。

我没有在开发者工具中的源/线程下看到工作线程,但是当我将共享工作线程作为普通工作线程加载时,它会出现。
为什么我不能在chrome中加载共享工人,有人知道发生了什么吗?
提前感谢gazillion!

pkwftd7m

pkwftd7m1#

DOH-原来我的devtools很可能是问题¯_()_/¯的原因。它停止了我的共享worker的执行。如果其他人遇到此问题,请确保您已关闭会话中使用共享worker的所有选项卡,并且调试器没有暂停执行。

rekjcdws

rekjcdws2#

我遇到了一个类似的问题,this修复了它:
在我的Linux Chrome上,我必须右键单击(或长按)重新加载按钮,然后选择“清空缓存和硬重新加载”以获得最新版本
如果不起作用,你也可以试试这个:
1.设置
1.隐私和安全
1.清除浏览数据
1.时间范围:一直都是
1.缓存的图像和文件:核对
1.清除数据
chrome://设置/清除浏览器数据

相关问题