我正在做一些有关HTML5 Web Worker的研究。
我使“正常”工作程序运行良好,但是似乎无法初始化SharedWorker。我尝试了最新版本的Chrome和Firefox,但没有成功...
即使运行在线演示,也不会输出任何信息。

例如,当我打开以下文档时:

index.html:

<!DOCTYPE html>
<html>
    <head>
        <title>Web workers</title>
    </head>
    <body>
        <p id="log">Log:</p>
        <script>
          alert("alert 1");
          var worker = new SharedWorker("task.js");
          alert("alert 2");
          var log = document.getElementById("log");
          worker.port.addEventListener("message", function(e){
              log.textContent += "\n" + e.data;
          }, false);
          worker.port.start();
          worker.port.postMessage("ping");
        </script>
    </body>
</html>


task.js:

onconnect = function(e) {
    var port = e.ports[0];
    port.postMessage("Hello World");
    port.onmessage = function(e) {
        port.postMessage("pong");
    }
}


我添加了两个警报功能以进行调试。始终显示“警报1”,从未显示“警报2”,因此我认为崩溃发生在SharedWorker构造函数中(不,这不是由于我的浏览器弹出式设置引起的)。
任何帮助或建议都非常欢迎!

最佳答案

感谢robertc有关检查控制台的提示,我得到了以下错误:

Uncaught Error: SECURITY_ERR: DOM Exception 18


Google引导我进入this topic,它基本上告诉您在Web服务器(我使用过wampserver)上运行它,这对我来说很有帮助。谢谢!

关于javascript - JavaScript无法通过SharedWorker()构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12177924/

10-09 07:11