java - 要在 GWT 中使用 Gears WorkerPool,我是否必须用 Java 和 Javascript 编写相同的代码?

标签 java javascript gwt google-gears

为了在 GWT/Gears 中使用 WorkerPool(Javascript 线程)类和功能,我是否需要同时使用 Java 和 Javascript 编写代码?经检查WorkerPool - Getting Started GWT-Gears-1.1 下载包中的示例 WorkerPool 应用程序似乎是我需要的。 Java 代码似乎是用来演示 Javascript 的同步特性,而 Javascript 中的相同算法也用于异步调用。

我错过了什么吗? GWT 的创建不是为了让您无需编写 Javascript 代码吗?为什么不能用 Java 编写 WorkerThread 代码并让编译器将其编译为 Javascript?

以下是该 url 中的相关 Java 代码:

 public void syncWorker(String message) {
// Busy wait for 5 seconds
long end = System.currentTimeMillis() + 5000;
while (true) {
  int busyCounter = 1000;
  String busyVar;
  while (busyCounter-- > 0) {
    busyVar = "garbage" + busyCounter;
  }
  long now = System.currentTimeMillis();
  if (now > end) {
    break;
  }
}
logMessage("Approved: " + message);
}

这里是worker.js中的相关Javascript代码(注意它是用Javascript编写的相同算法):

function doWork(message) {
// Busy wait for 5 seconds
var start = new Date();
while (true) {
  var busyCounter = 10000;
  var busyVar;
  while (busyCounter-- > 0) {
    busyVar = "garbage" + busyCounter;
  }
  var now = new Date();
  if (now.getTime() - start.getTime() > 5000) {
    break;
  }
 }

 return "Approved: " + message;
 };

这是 Java 中的调用:

wp = Factory.getInstance().createWorkerPool();
wp.setMessageHandler(GearsWorkerPoolTutorial.this);
workerId = wp.createWorkerFromUrl("worker.js");

任何有 GWT 和 Gears 经验的人都可以解释一下吗?

谢谢!

编辑:

好像是按照这个http://markmail.org/message/gxipzth2jheccpha#query:+page:1+mid:sabv4llpymbavt7t+state:results我的怀疑是真的。我不确定我是否理解为什么存在这种限制。我很想阅读有关此事的任何见解。

编辑2:

这似乎也证实了这一点:http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/658f6665e5b09bed

最佳答案

我从未使用过 Gears for GWT,但在阅读了您的证据后,我相信您的说法是正确的,即 WorkerPool 类只能运行 JavaScript 文件,而不能运行 Java 编译为 JavaScript 的文件。以下是 GWT-Gears v1.1.1 WorkerPool API 的引用。

WorkerPool module allows web applications to run JavaScript code in the background, without blocking the main page's script execution. Currently this class can only create worker threads out of raw JavaScript code. That is, user code cannot currently create worker bodies from Java code.

WorkerPool 类管理线程和通信,这不是一个小任务。

关于java - 要在 GWT 中使用 Gears WorkerPool,我是否必须用 Java 和 Javascript 编写相同的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/512002/

相关文章:

javascript - 如何通过 linkText/linkName 严格地在表的隐藏行之一中找到特定链接(不使用 css-selectors 或 xpath)?

javascript - 跨浏览器测试工具,包括浏览器版本

java - 在居中的 PopupPanel onLoad 中显示 GWT 图像

java - 如何从 GWT 中的 RichTextArea 获取光标位置或位置?

javascript - 使用 JS 检查用户是否为 EST 时区并且在设定的 EST 时间范围内

java - 从 Cookie 获取 'undefined' 作为 java 中的值?

java - 日期构造函数java

java.net.URI 获取带下划线的主机

java - 在java spring中生成pdf文件时出错

javascript - 来自 Bookmarklet 的 Ajax 调用