修改
将shared-worker.js
文件重命名为其他任何名称,例如shared-worker-new.js
,似乎可以解决此问题。我曾尝试清空缓存,重新启动浏览器并进行硬重装,但是shared-worker.js
只是不想工作。 new 工作文件似乎没有出现缓存问题。重新加载后,对文件的更改将立即应用。有人对我为什么不能使用shared-worker.js
有任何想法吗?
/编辑
我似乎无法在Google Chrome(67.0.3396.99)中加载我的Shared Worker。但是,当我切换到隐身模式时,它确实可以工作。 Firefox(61.0.1)在常规模式和私有模式下均可正常运行。我已经尝试过禁用浏览器插件,但这也不起作用。
我有3个文件(在同一目录中):index.html
,app.js
和shared-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
message from the shared worker: I have received "Hello worker"
。 message from the shared worker: I have received "Hello worker"
。我没有在开发人员工具的“源/线程”下看到该工作程序,但是当我将共享工作程序作为常规工作程序加载时,即var worker = new Worker('shared-worker.js');
,它确实出现了。
为什么我不能在chrome中加载Shared Worker,有人知道发生了什么吗?
预先感谢百万亿!
答案 0 :(得分:0)
DOH -事实证明,我的devtool可能是造成问题的原因。它停止了我共享工作者的执行。如果其他任何人都遇到此问题,请确保关闭了会话中使用共享工作程序的所有选项卡,并且调试器没有暂停执行。