我使用gwt-platform,我有2个演示者(MainpagePresenter和SecondpagePresenter)。 MainpagePresenter是我的DefaultPlace。 因此,onModuleLoad我开始使用rpc从服务器部分加载数据并将我的数据保存到客户端缓存中。我实现了一个PopupPanel来显示这样的加载屏幕:
PopupPanel loadingPanel = new PopupPanel(false, true);
this.loadingPanel.add(new Label("loading..."));
this.loadingPanel.center();
this.loadingPanel.show();
因此,在成功加载所有内容之前,用户无法点击任何内容。
当来自rpc的onSucess()
被调用时,Panel将被隐藏。
My SecondpagePresenter从缓存onReset()
中获取已保存的数据。
@Override
protected void onReset()
{
super.onReset();
this.data = (Data) this.cache.get("Data");
}
一切正常,但当我浏览第二页并进行浏览器刷新时,仍然会在收到数据之前调用SecondpagePresenter的代码。
我到目前为止找到的唯一解决方案是实现这样的while循环:
while(cache.get("data") != null)
{
Window.alert("loading");
}
这会阻止代码继续,但用户必须单击“确定” - 按钮。
所以我的问题是:有没有办法阻止来自SecondpagePresenter的代码在我的MainpagePresenter数据成功加载之前被调用?