Web worker 在 Sharepoint 2013 中创建后不会抛出错误

Web worker not throws error after creation in sharepoint 2013

我不明白 Sharepoint 中是否有什么东西导致了 我的网络工作者在 IE11 中创建后立即抛出错误。同一个工人在 chrome 上运行良好。甚至尝试了一个简单的测试:

工人档案:

     self.addEventListener('message',function(e){  console.log("message");  })    

我正在这样创建工人:

var worker = new Worker('http://{rootSite}/sites/53/Style%20Library/testworker.js')
worker.addEventListener('message',function(e){  console.log("message");  });
worker.addEventListener('error',function(e){  console.log("error");  });

这很奇怪,因为我在非共享点网站上测试了相同的脚本,并且它在 IE 上运行。

但是在共享点站点上,只要从同一站点的文档库创建测试工作人员..它就会抛出一个错误..带有空消息!!

谁能告诉我这是怎么回事?!

好的...所以对于所有想要在他们的应用程序中使用网络工作者的共享点开发人员..

我仍然不知道为什么在 Internet Explorer 中 Web Worker 无法加载外部脚本

但显然内联 web worker 可以工作!

因此您可以将工作代码作为文本文件存储在文档库中。然后通过 ajax 获取它的内容,然后创建一个 inline worker。您将需要 window.URL 对象和 blob 构造函数:

首先从 javascript 代码构建一个 blob 作为字符串:

Var string = "worker code ";

Var blob = new blob([string],{type:"text/javascript"});

Var worker = new Worker(URL.createUriObject(blob));

老问题,但我想为偶然发现它的人留下答案。

在 IE 中通过 blob 加载 Web worker 有很多限制。不建议走那条路。

出于某种原因,当从共享点站点加载文件时,Internet Explorer 会阻止 Web worker 加载。

将您的网络工作者文件存储在 _layouts 文件夹中效果很好。