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

时间:2015-01-23 05:33:11

标签: sharepoint-2013 web-worker

我无法理解在sharepoint中是否存在导致该问题的原因 我的网络工作者在IE11中创建时立即抛出错误。同一个工人在镀铬上运行得很好。甚至尝试了一个简单的测试:

工人档案:

     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上运行。

但是在一个sharepoint网站上,一旦从同一网站的文档库创建测试工作者,它就会抛出错误..带有空消息!!

请有人能告诉我这里发生了什么吗?!

2 个答案:

答案 0 :(得分:0)

好的......对于所有想要在他们的应用中使用网络工作者的共享点开发者来说......

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

但显然内联网络工作者正在工作!

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

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

Var string = "worker code ";

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

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

答案 1 :(得分:0)

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

在IE中通过blob加载Web worker有许多限制。不建议沿着这条路走下去。

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

将您的Web worker文件存储在_layouts文件夹中效果很好。