web works 显示新线程未被创建,请问works.js 要怎样被主线程调用?

主线程的js 代码直接嵌在html文件内,html文档和works.js路径如图所示:

https://img3.mukewang.com/5c3ee7d60001463c03980189.jpg

主线程代码如下,”新线程的url,必须在本域下“到底应该怎么操作?:


<script>

var w;


function startWorker() {

    if(typeof(Worker) !== "undefined") {

        if(typeof(w) == "undefined") {

            w = new Worker("js/works.js");//我们在一个外部 JavaScript 中创建我们的 web worker。新线程的url,必须在本域下。

        }

        w.onmessage = function(event) {

            document.getElementById("result").innerHTML = event.data;

        };

    } else {

        document.getElementById("result").innerHTML = "抱歉,你的浏览器不支持 Web Workers...";

    }

}

</script>

报错信息如下图,而且我是在本地上运行的代码,没有放在服务器上,浏览器是chrome的,不存在不兼容的情况:


https://img.mukewang.com/5c3ee7ea00012d4908000311.jpg

慕森卡
浏览 532回答 1
1回答

慕的地6264312

好像是你直接打开了html文件,导致了跨域问题。你可以搭建一个服务器环境跑一跑。我刚测试了你的代码,成功运行。你可以在本地搭建一个服务器环境,模拟同域,进行测试。一下意见几个简单的临时服务器方案。php5.4以上可以在当前目录打开命令行,执行php -s localhost:8080然后可以直接访问 http://localhost:8000。python在当前目录打开命令行,执行&nbsp; python -m SimpleHTTPServer# 默认启动在8000端口然后打开 http://localhost:8000。如果你有node,可以试试json-server 具体的我也忘了,你可以查查资料。当然用什么不重要,最重要的是搭建一个服务器环境,解决跨域问题。本地同服务器下所有的资源都是同域
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript