我无法理解在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网站上,一旦从同一网站的文档库创建测试工作者,它就会抛出错误..带有空消息!!
请有人能告诉我这里发生了什么吗?!
答案 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文件夹中效果很好。