工人在GWT JSNI SVN它看起来像WebWorkers尚未完全没有实现。 我知道,元素正处于发展的早期阶段,但可能会有人已经试图使它的工作?
Answer 1:
与网络工作者的问题是,他们并不真正符合标准的GWT / Java模型 - 在我看来,他们几乎没有符合标准的JS模型。
网络工作者通过传递数据来回之间有什么本质上是不同的JavaScript虚拟机的工作。 该数据必须是在一个字符串的形式,并且每个工人必须分别加载其JS。 这意味着在一名工人(或主页)没有声明的变量是从另一个访问,除非它是作为字符串数据的部分已经结束了,来回推动工人之间。
那么,如何当你考虑GWT / Java的这项工作? 从Java的角度来看,这不等同于多线程,但多个JVM! 不同过程仅可通过使字符串(或更重要的是,不Java对象)来回通信,并且不能共享任何其它状态。 即使是静态变量可能是两个虚拟机之间的不同。
从您发布的链接,检查出的源JsWorker -您可以通过创建一个这样的实例JsWindow.newWorker与JS脚本的网址开头为,和JsWorker支持方法来监听响应,并邮件发送到给它的工作要做。
该脚本可以是一个GWT编译对象 - 但它是一个独立的模块和入口点比原来的应用程序,所以它只有它可以合理地运行代码,并且不尝试启动页面上绘图时加载。 或许,这将需要使用的接头,只会加载JS和“页”上不会承担iframe中。
在GWT-NS的项目有一定的网络工作者的样品已经使用自己的连接构造的js文件加载的工人来加载内置,以及其他一些便利作品也是如此。
文章来源: WebWorkers in GWT Elemental