首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GWT中的线程(客户端)

GWT中的线程(客户端)
EN

Stack Overflow用户
提问于 2010-04-07 08:04:13
回答 4查看 20.4K关注 0票数 50

据我所知,GWT应用程序的整个客户端在构建时都会转换为Javascript,因此我认为这个问题涉及Javascript和GWT提供的可能性。

我有几十个进程需要在我的GWT应用程序中启动,然后每个进程都会不断地调用服务器。GWT支持线程处理吗?GWT客户端是否支持线程处理?

编辑:

这个链接声明:

代码语言:javascript
运行
复制
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). 

或者计划好的“多线程”任务,这意味着什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-07 10:18:46

JavaScript不支持多线程。然而,GWT有一个类来“模拟”线程,这不是真正的多线程,但在大多数情况下,它可以完成您需要的事情:com.google.gwt.core.client.Scheduler.ScheduledCommand。该技术基于计时器类,计时器类在给定的时间流逝后执行一种方法。

例如,当将以下代码放入您自己的代码中时,scheduleDeferred方法将直接返回,您的代码将在命令之后继续执行,而execute()方法则使用计时器执行:

代码语言:javascript
运行
复制
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

票数 37
EN

Stack Overflow用户

发布于 2010-04-07 09:33:30

有一些工作是作为HTML5的一部分在许多浏览器中实现的,但不是在所有浏览器(最显著的是internet )上实现的。您可以在可用的地方使用这些特性,但您应该做的是查看javascript编程模型。

Javascript通常异步工作。请求被触发,并且在某一时刻,它们的回答被作为一个事件来接收。您可以同时拥有大量挂起的请求。不过,这需要对您的系统进行重新设计。

票数 4
EN

Stack Overflow用户

发布于 2012-03-30 21:44:38

新的方法是使用调度器

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2590850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档