GWT中的网络工作者

GWT中的网络工作者,gwt,web-worker,Gwt,Web Worker,看起来WebWorkers还没有完全实现。我知道elemental处于开发的早期阶段,但可能有人已经尝试过让它工作了?web workers的问题是,他们并不真正适合标准的GWT/Java模型——在我看来,他们几乎不适合标准的JS模型 Web工作者通过在本质上不同的JavaScript虚拟机之间来回传递数据来工作。该数据必须是字符串形式,并且每个worker必须分别加载其JS。这意味着一个工作程序(或主页)中声明的变量不能从另一个工作程序访问,除非它作为字符串数据的一部分传递,并在工作程序之间来


看起来WebWorkers还没有完全实现。我知道elemental处于开发的早期阶段,但可能有人已经尝试过让它工作了?

web workers的问题是,他们并不真正适合标准的GWT/Java模型——在我看来,他们几乎不适合标准的JS模型

Web工作者通过在本质上不同的JavaScript虚拟机之间来回传递数据来工作。该数据必须是字符串形式,并且每个worker必须分别加载其JS。这意味着一个工作程序(或主页)中声明的变量不能从另一个工作程序访问,除非它作为字符串数据的一部分传递,并在工作程序之间来回推送

当你考虑GWT/java时,这是怎么工作的?从Java的角度来看,这并不等同于多个线程,而是多个JVM!不同的进程只能通过来回传递字符串(或者更重要的是,不是Java对象)进行通信,并且不能共享任何其他状态。即使静态变量在两个虚拟机之间也可能不同

从您发布的链接中,查看-您可以使用JS脚本的url创建此via的实例,JsWorker支持侦听响应的方法,并向其发送消息以完成任务

该脚本可以是一个GWT编译的对象,但它将是一个独立于原始应用程序的模块和入口点,因此它只有可以合理运行的代码,并且在加载时不会尝试在页面上开始绘图。它可能需要使用一个只加载JS的链接器,而不会在“页面”上使用iframe

该项目已经有一些web worker示例,它们使用自己的链接器构建js文件以加载到worker中,以及其他一些方便的部分