繁体   English   中英

Chrome无法加载Shared Worker(除非在隐身模式下)

[英]Shared Worker not being loaded by Chrome (unless in incognito mode)

编辑

shared-worker.js文件重命名为其他任何文件,例如shared-worker-new.js ,似乎可以解决此问题。 我尝试清空缓存,重新启动浏览器并进行硬重装,但是shared-worker.js只是不想工作。 新的工作文件似乎没有出现缓存问题。 重新加载后,对文件的更改将立即应用。 有谁对我为什么不能使用shared-worker.js有任何想法?

/编辑

我似乎无法在Google Chrome(67.0.3396.99)中加载共享工作器。 但是,当我切换到隐身模式时,它确实可以工作。 Firefox(61.0.1)在常规模式和私有模式下均可正常运行。 我已经尝试过禁用浏览器插件,但是那也不起作用。

我有3个文件(在同一目录中): index.htmlapp.jsshared-worker.js

index.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>

app.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"message from the shared worker: I have received "Hello worker"
  • 在一个隐身的 Chrome标签中,我得到以下输出: message from the shared worker: I have received "Hello worker"
  • 在常规的Chrome选项卡中,我根本没有输出。

我没有在开发人员工具的“源/线程”下看到该工作程序,但是当我将共享工作程序加载为常规工作程序时,即var worker = new Worker('shared-worker.js'); ,它确实出现。

为什么我不能在chrome中加载共享工作器,有人知道发生了什么吗?

在此先感谢您!

DOH-事实证明,我的devtool可能是造成问题的原因。 它停止了我共享工作者的执行。 如果其他任何人都遇到此问题,请确保关闭了会话中使用共享工作程序的所有选项卡,并且调试器没有暂停执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM