在GWT应用程序中,我有一个运行服务器端并使用rpc(GWT调度程序)调用的长进程,我希望向客户端提供反馈,作为显示消息和总进度的进度条。 我的问题是如何从服务器动态恢复消息和进度?
我对任何解决方案感兴趣
提前感谢您的帮助。
答案 0 :(得分:2)
查看incubator中的获取进度条。 Here是使用它的人的另一个例子。
更新
如果要在客户端显示进度,则需要定期对服务器进行异步调用以获取进度值。换句话说,服务器需要在某处写入/存储它的进度。然后客户端对服务器进行异步调用,服务器读取该值并将其发送回客户端,客户端可以更新进度条。
答案 1 :(得分:1)
常规的异步调用应该这样做。但是您还需要从客户端实现某种轮询机制,以便它定期向服务器发送异步请求。
请参阅有关异步调用的教程 http://code.google.com/webtoolkit/doc/latest/tutorial/RPC.html
对于轮询机制,您应该可以使用简单的while循环来完成。在while循环中,继续调用getStatus()服务器调用,直到达到100%完成状态。
答案 2 :(得分:1)
或者您可以使用Channel API。它有Python和Java两种版本(也可能是其他支持的语言版本)。 https://developers.google.com/appengine/docs/java/channel/
答案 3 :(得分:0)
看看upload4gwt中的progress syncer和progress bar可能会给你一些想法。
答案 4 :(得分:0)
http://www.java2s.com/Code/Java/GWT/GWTprogressbar.htm
您必须使用计时器定期轮询服务器,并在服务器上保留进度计算。