- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Chrome 和 Firefox 中<57 它可以工作,但在 Firefox Quantum 中不起作用。
目标是将消息发送到浏览器中的另一个选项卡。
填写文本输入并单击发送按钮时,浏览器中的其他选项卡应在浏览器控制台中写入消息。
html 文件:
<script type="text/javascript">
const myWorker = new SharedWorker( "sharedWorkerChat.js" );
const port = myWorker.port;
port.addEventListener( "message", function( e ) {
console.log( e.data );
}, false );
port.start();
function postMessage() {
const value = document.getElementById( "input" ).value;
console.log( value );
port.postMessage( value );
}
</script>
<input type="text" id="input" />
<button onclick="postMessage()"> Send </button>
sharedWorkerChat.js
var m;
var instances = [];
self.addEventListener( "connect", function ( e ) {
var port = e.ports[ 0 ];
instancias.push( port );
port.addEventListener( "message", function ( message ) {
m = message.data;
instances.forEach( function( p ) {
p.postMessage( m );
});
}, false );
port.start();
}, false);
最佳答案
我刚刚遇到了同样的问题,显然 Firefox Quantum 默认启用多处理功能,但它还不支持 SharedWorkers。
要检查您是否启用了多处理,请在地址栏中输入 about:debugging#workers,如果它处于事件状态,您应该会在页面顶部看到有关 SharedWorkers 的黄色警告。
您可以通过点击该警告上的链接来禁用此功能。
关于Firefox Quantum SharedWorker 无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47414543/
MDN Documentation on SharedWorkers状态: The SharedWorker interface represents a specific kind of worke
我需要做一些繁重的工作,发现重新格式化整个代码有点乏味,并且想知道“SharedWorkers 可以使用其他共享工作人员的全局变量吗?”。 如果可以的话,有人可以做一个简单的演示吗?我对 Shared
假设我的 html 文件来自 http://foo.com/index.html ,其中有一个标记为http://bar.com/bar.js 。在 bar.js 中,我想启动一个 SharedWor
我曾与 Worker objects before 合作过,而且非常简单,尤其是教程。 所以下一步自然是 work with SharedWorkers 。我已经把它记下来了,但现在 SharedWo
互联网上有很多关于 SharedWorker 和 StackOverflow 的讨论和教程,但没有一个真正实现了最基本的目标——在两个共享 Worker 之间直接传递数据。 对我来说,SharedWo
在 Chrome 和 Firefox 中 const myWorker = new SharedWorker( "sharedWorkerChat.js" ); const port
使用给定的 tsconfig.json, { "compilerOptions": { "lib": ["es2015", "dom"] }, "files": [
我正在对 HTML5 Web Worker 进行一些研究。我让“普通”工作人员运行良好,但是我似乎无法初始化 SharedWorker。我已经在最新版本的 Chrome 和 Firefox 中尝试过,
我想创建一个 SharedWorker,如一本优秀书籍的一章所述:https://github.com/getify/You-Dont-Know-JS/blob/master/async%20%26%
SharedWorker 使用 Message Port 与 ParentWorker 交换消息。 父工 var port = new SharedWorker('/worker.js').port;
我用纯 JS 创建了一个简单的共享工作程序演示,我决定看看是否可以将其更改为 TS 项目,但从一开始我就遇到了一个问题,我不确定它是否与d.ts 文件或其他文件。 我已经安装了@types/share
使用 new Worker("whatever.js") 生成 WebWorker 工作正常,但 new SharedWorker("whatever.js") 返回错误:ReferenceError
将 SharedWorker 添加到 @angular/cli >1.2 生成的项目的具体步骤是什么。我希望 SharedWorker 在 TypeScript 中定义(具有完整/正确的类型定义编辑器
为什么 Safari 放弃了对 SharedWorker 的支持? 是否有任何有效的 polyfill 使用例如 localStorage 和 StorageEvent 作为通信端口? (是的,shi
在我见过的所有例子中,它们都与此类似 onconnect = function(e) { var port = e.ports[0]; port.onmessage = functio
我正在尝试在 SharedWorker 中实现服务器发送事件 (SSE)。 实现在谷歌浏览器中没有问题。但是,它在 FireFox 中根本不起作用。 当我尝试让它在 FireFox 中运行时,我在控制
我试图让每个在我的应用程序上打开多个选项卡的用户只保持一个连接事件,该应用程序使用 Pusher 和 Laravel Echo,我能够按照下面的文章和示例项目让它在测试项目上工作。 https://b
我是一名优秀的程序员,十分优秀!