工人,网络或服务;无论如何访问窗口对象?

时间:2015-09-11 16:12:58

标签: javascript html5 cordova web-worker webos

我正在尝试利用webOS中的网络工作人员进行标牌应用,原因是一个奇怪的错误,即使用SCAP API执行文件下载之间的时间呈指数级减慢。

我的想法是尝试网络工作人员下载文件,希望这意味着问题会消失/应用程序会更快一些。

然而,SCAP API基于Cordova,它似乎Cordova需要访问Window对象,Web Worker无法做到这一点(我终于在尝试了几个小时后发现了!)

我的问题是,无论如何要让网络工作者与Cordova一起工作吗?

是否有其他类型的工作人员可以访问窗口对象?

基本上,这有什么解决方案吗?或者它是100%不可能和无用的尝试?

1 个答案:

答案 0 :(得分:0)

您不能使用服务工作者来控制任何window对象。

服务工作者在工作者上下文(而不是浏览器上下文)中运行;因此has no DOM access

由于postMessage()之类的功能是window的功能,并且window是DOM的一部分,因此您不能 window.postMessage()来自服务人员。不幸的是,client.postMessage()仅在来自相同域起源(和服务工作者“作用域”)的浏览器上下文(选项卡,窗口等)之间起作用。