如何使用 GWT 实现进度条?
Posted
技术标签:
【中文标题】如何使用 GWT 实现进度条?【英文标题】:How to Implement progressbar with GWT? 【发布时间】:2011-08-01 17:33:35 【问题描述】:在 GWT 应用程序中,我有一个运行服务器端并使用 rpc(GWT 调度程序)调用的长进程,我希望将反馈作为显示消息和总进度的进度条给客户端。 我的问题是如何从服务器动态恢复消息和进度?
我对任何解决方案都感兴趣
提前感谢您的帮助。
【问题讨论】:
【参考方案1】:查看incubator 中的获取进度条。 Here 是另一个使用它的例子。
更新
如果要在客户端显示进度,则需要定期对服务器进行异步调用以获取进度值。换句话说,服务器需要在某处写入/存储它的进度有多远。客户端然后对服务器进行异步调用,服务器读取该值并将其发送回客户端,客户端可以更新进度条。
【讨论】:
谢谢你的回答其实我的问题不在于进度条组件,而是如何从服务器检索值以便能够在进度条中动态主题 这肯定已经死了。它甚至不会出现在 GWT 设计器中,并且会给出错误The import com.google.gwt.widgetideas cannot be resolved
。请改用java2s.com/Code/Java/GWT/GWTprogressbar.htm。
@Chloe - 哇,投反对票,因为超过一年的答案不再适用......干得好......
最佳答案似乎不正确。随机用户会期望最正确的答案位于顶部。
@Chloe - 你知道 gwt 孵化器是什么吗?这是一个社区可以提交可能进入主干的代码的地方。源仍然在链接中可用并且可以使用。仅仅因为它没有在设计器中“出现”并不意味着它不能被使用......【参考方案2】:
一个常规的异步调用应该可以做到这一点。但是您还需要从客户端实现某种轮询机制,以便它定期向服务器发送异步请求。
查看有关异步调用的教程 http://code.google.com/webtoolkit/doc/latest/tutorial/RPC.html
对于轮询机制,您应该可以使用简单的 while 循环来完成。在 while 循环中,继续调用 getStatus() 服务器调用,直到达到 100% 完成状态。
【讨论】:
【参考方案3】:或者您可以使用 Channel API。它在 Python 和 Java 中都可用(可能还有其他受支持的叶猴)。 https://developers.google.com/appengine/docs/java/channel/
【讨论】:
【参考方案4】:看看upload4gwt中的progress syncer和progress bar可能会给你一些想法。
【讨论】:
【参考方案5】:http://www.java2s.com/Code/Java/GWT/GWTprogressbar.htm
您必须使用计时器定期轮询服务器,并将进度计算保留在服务器上。
【讨论】:
以上是关于如何使用 GWT 实现进度条?的主要内容,如果未能解决你的问题,请参考以下文章