【问题标题】:GWT: MultithreadingGWT:多线程
【发布时间】:2011-12-09 05:17:11
【问题描述】:

我面临这个问题:点击一个按钮后,我向服务器发出请求并获取一些数据;然后,我在新页面/视图上显示数据。这引发了一个问题:UI 必须在发出请求以及接收、解析和设置视图上的数据时等待。这导致用户必须等到所有数据都加载完毕才能返回,甚至没有机会取消调用。多线程可以解决这个问题,而这正是我需要帮助的地方。

HTML5 Web Workers 可以为我解决问题,但是我不想在 JSNI 中“硬编码”它们,并且使用 Javascript 而不是 GWT Java (RequestBuilder) 编写所有调用。我读过有关 DeferredCommand 的文章,但我也不认为这是我的问题的答案。

有什么建议吗?或者这是目前不可能的优化?

【问题讨论】:

    标签: java multithreading html gwt


    【解决方案1】:

    在 JS 中,因此在 GWT 中,没有多线程。相反,您应该使用带有回调的异步调用。通常当您使用GWT RPC 进行通信时,您会在onSuccess 事件中发出请求并处理结果。或者,您可以随时使用Timer 定期检查结果。我不确定你提出什么样的要求,所以很难具体。可能你应该检查Communicating with the server 的适当部分

    编辑:我刚刚注意到你提到了RequestBuilder。 sendRequest() 不应阻止执行,您应该处理提供的回调的RequestCallback.onResponseReceived() 的结果。这意味着您以某种方式在该回调中继续您的按钮事件处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多