为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕森卡 2018-12-29 23:14:55
主线程的js 代码直接嵌在html文件内,html文档和works.js路径如图所示:主线程代码如下,”新线程的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的,不存在不兼容的情况:
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

好像是你直接打开了html文件,导致了跨域问题。你可以搭建一个服务器环境跑一跑。我刚测试了你的代码,成功运行。


你可以在本地搭建一个服务器环境,模拟同域,进行测试。一下意见几个简单的临时服务器方案。


php5.4以上

可以在当前目录打开命令行,执行


php -s localhost:8080

然后可以直接访问 http://localhost:8000。


python

在当前目录打开命令行,执行


  python -m SimpleHTTPServer

# 默认启动在8000端口

然后打开 http://localhost:8000。

如果你有node,可以试试json-server 具体的我也忘了,你可以查查资料。

当然用什么不重要,最重要的是搭建一个服务器环境,解决跨域问题。本地同服务器下所有的资源都是同域


查看完整回答
反对 回复 2019-01-16
  • 1 回答
  • 0 关注
  • 531 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信