在呈现页面之前,我可以获得GWT异步调用的结果吗?

时间:2010-06-30 06:00:27

标签: java gwt gwt-rpc

我有一个GWT页面,上面有一个列表(来自数据存储区)。我知道如何在加载页面后通过异步调用获取此列表,但我想确保在页面最初加载时,它中包含有效数据。否则,页面会加载大部分内容,然后填充列表,这会导致负载不稳定,以及用户在页面加载之前需要等待的时间更长。

那么,如何在加载时将数据从服务器获取到页面中?有没有办法从我的UIBinder类的构造函数调用服务器端服务?我无法调用实际的服务实现,因为客户端代码无法引用服务器端代码,对吧?

当然这不是一个独特的需求,但我似乎无法在Google上找到任何提示(尽管我可能没有找到合适的条款)。

2 个答案:

答案 0 :(得分:1)

我在自己的项目中为解决同样的问题所做的是使用JSP将我需要的数据作为javascript对象嵌入到页面源中。这样,在调用onModuleLoad()时,数据就已存在。关于如何将javascript对象读入java代码,Google有一点documentation

显然,您还需要了解一点jsp

答案 1 :(得分:0)

您可以隐藏整个页面内容,直到加载数据以避免不稳定效果。

但最友好的用户方式是在页面加载上显示加载消息。然后在异步调用的成功和失败事件中,在数据绑定后,隐藏加载消息。