据我所知,GWT应用程序的整个客户端在构建时都会转换为Javascript,因此我认为这个问题涉及Javascript和GWT提供的可能性。
我有几十个进程需要在我的GWT应用程序中启动,然后每个进程都会不断地调用服务器。GWT支持线程处理吗?GWT客户端是否支持线程处理?
编辑:
这个链接声明:
No JavaScript knowledge required If you’re just a user of the framework,
which I am for the matter of discussion, you do not need to know JavaScript
in order to write dynamic content, be it client-side such as rolling frames,
docking panels or scheduled “multi-threading” tasks, or server-side calls
using XMLHttpRequests (aka AJAX).
或者计划好的“多线程”任务,这意味着什么?
发布于 2010-04-07 10:18:46
JavaScript不支持多线程。然而,GWT有一个类来“模拟”线程,这不是真正的多线程,但在大多数情况下,它可以完成您需要的事情:com.google.gwt.core.client.Scheduler.ScheduledCommand
。该技术基于计时器类,计时器类在给定的时间流逝后执行一种方法。
例如,当将以下代码放入您自己的代码中时,scheduleDeferred
方法将直接返回,您的代码将在命令之后继续执行,而execute()
方法则使用计时器执行:
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
public void execute() {
.. code here is executed using the timer technique.
}
});
您可以创建一个重复命令RepeatingCommand
,它可以用于运行该命令不止一次。使用Scheduler.get().scheduleIncremental()
启动它,它将执行命令,直到execute方法返回false
。您可以使用它将任务拆分为子任务,以获得更好的“线程”行为。Scheduler
支持一些以不同方式启动调度命令的其他方法。有关更多细节,请参见JavaDoc。
编辑了,并使用新的GWT类进行了更新,而不是使用不推荐的DeferredCommand
。
发布于 2010-04-07 09:33:30
有一些工作是作为HTML5的一部分在许多浏览器中实现的,但不是在所有浏览器(最显著的是internet )上实现的。您可以在可用的地方使用这些特性,但您应该做的是查看javascript编程模型。
Javascript通常异步工作。请求被触发,并且在某一时刻,它们的回答被作为一个事件来接收。您可以同时拥有大量挂起的请求。不过,这需要对您的系统进行重新设计。
发布于 2012-03-30 21:44:38
新的方法是使用调度器
https://stackoverflow.com/questions/2590850
复制相似问题